Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
715ea985
Commit
715ea985
authored
Oct 18, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Authors: Doug Paul <doug@elemental.ath.cx>, Glenn Wurster <gwurster@scs.carleton.ca>
Don't unrealize the palette by calling SetPaletteEntries. Check peFlags for PC_RESERVED.
parent
065fdde8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
1 deletion
+37
-1
palette.c
dlls/gdi/palette.c
+37
-1
No files found.
dlls/gdi/palette.c
View file @
715ea985
...
...
@@ -446,7 +446,41 @@ BOOL WINAPI AnimatePalette(
if
(
hPal
!=
GetStockObject
(
DEFAULT_PALETTE
)
)
{
if
(
!
SetPaletteEntries
(
hPal
,
StartIndex
,
NumEntries
,
PaletteColors
))
return
FALSE
;
PALETTEOBJ
*
palPtr
;
UINT
pal_entries
;
const
PALETTEENTRY
*
pptr
=
PaletteColors
;
palPtr
=
(
PALETTEOBJ
*
)
GDI_GetObjPtr
(
hPal
,
PALETTE_MAGIC
);
if
(
!
palPtr
)
return
0
;
pal_entries
=
palPtr
->
logpalette
.
palNumEntries
;
if
(
StartIndex
>=
pal_entries
)
{
GDI_ReleaseObj
(
hPal
);
return
0
;
}
if
(
StartIndex
+
NumEntries
>
pal_entries
)
NumEntries
=
pal_entries
-
StartIndex
;
for
(
NumEntries
+=
StartIndex
;
StartIndex
<
NumEntries
;
StartIndex
++
,
pptr
++
)
{
/* According to MSDN, only animate PC_RESERVED colours */
if
(
palPtr
->
logpalette
.
palPalEntry
[
StartIndex
].
peFlags
&
PC_RESERVED
)
{
TRACE
(
"Animating colour (%d,%d,%d) to (%d,%d,%d)
\n
"
,
palPtr
->
logpalette
.
palPalEntry
[
StartIndex
].
peRed
,
palPtr
->
logpalette
.
palPalEntry
[
StartIndex
].
peGreen
,
palPtr
->
logpalette
.
palPalEntry
[
StartIndex
].
peBlue
,
pptr
->
peRed
,
pptr
->
peGreen
,
pptr
->
peBlue
);
memcpy
(
&
palPtr
->
logpalette
.
palPalEntry
[
StartIndex
],
pptr
,
sizeof
(
PALETTEENTRY
)
);
PALETTE_ValidateFlags
(
&
palPtr
->
logpalette
.
palPalEntry
[
StartIndex
],
1
);
}
else
{
TRACE
(
"Not animating entry %d -- not PC_RESERVED
\n
"
,
StartIndex
);
}
}
GDI_ReleaseObj
(
hPal
);
TRACE
(
"pLastRealizedDC %p -- pLastRealizedDC->pRealizePalette %p
\n
"
,
pLastRealizedDC
,
pLastRealizedDC
?
pLastRealizedDC
->
pRealizePalette
:
0
);
if
(
pLastRealizedDC
&&
pLastRealizedDC
->
pRealizePalette
)
pLastRealizedDC
->
pRealizePalette
(
NULL
,
hPal
,
hPal
==
hPrimaryPalette
);
...
...
@@ -669,6 +703,7 @@ static BOOL PALETTE_UnrealizeObject( HGDIOBJ handle, void *obj )
}
if
(
hLastRealizedPalette
==
handle
)
{
TRACE
(
"unrealizing palette %p
\n
"
,
handle
);
hLastRealizedPalette
=
0
;
pLastRealizedDC
=
NULL
;
}
...
...
@@ -686,6 +721,7 @@ static BOOL PALETTE_DeleteObject( HGDIOBJ handle, void *obj )
HeapFree
(
GetProcessHeap
(),
0
,
palette
->
mapping
);
if
(
hLastRealizedPalette
==
handle
)
{
TRACE
(
"unrealizing palette %p
\n
"
,
handle
);
hLastRealizedPalette
=
0
;
pLastRealizedDC
=
NULL
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment