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
8d6dc9da
Commit
8d6dc9da
authored
Jun 29, 2008
by
H. Verbeet
Committed by
Alexandre Julliard
Jun 30, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Move setting a palette up a couple of lines in BltOverride().
This prevents a few failures in the ddraw tests when using FBOs due to using P8 surfaces without a palette set.
parent
469e791f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
10 deletions
+15
-10
surface.c
dlls/wined3d/surface.c
+15
-10
No files found.
dlls/wined3d/surface.c
View file @
8d6dc9da
...
@@ -3276,6 +3276,17 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
...
@@ -3276,6 +3276,17 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
SourceRectangle
.
top
=
0
;
SourceRectangle
.
top
=
0
;
SourceRectangle
.
bottom
=
Src
->
currentDesc
.
Height
;
SourceRectangle
.
bottom
=
Src
->
currentDesc
.
Height
;
}
}
/* When blitting from an offscreen surface to a rendertarget, the source
* surface is not required to have a palette. Our rendering / conversion
* code further down the road retrieves the palette from the surface, so
* it must have a palette set. */
if
((
Src
->
resource
.
format
==
WINED3DFMT_P8
)
&&
(
Src
->
palette
==
NULL
))
{
paletteOverride
=
TRUE
;
TRACE
(
"Source surface (%p) lacks palette, overriding palette with palette %p of destination surface (%p)
\n
"
,
Src
,
This
->
palette
,
This
);
Src
->
palette
=
This
->
palette
;
}
if
(
wined3d_settings
.
offscreen_rendering_mode
==
ORM_FBO
&&
GL_SUPPORT
(
EXT_FRAMEBUFFER_BLIT
)
&&
if
(
wined3d_settings
.
offscreen_rendering_mode
==
ORM_FBO
&&
GL_SUPPORT
(
EXT_FRAMEBUFFER_BLIT
)
&&
(
Flags
&
(
WINEDDBLT_KEYSRC
|
WINEDDBLT_KEYSRCOVERRIDE
))
==
0
)
{
(
Flags
&
(
WINEDDBLT_KEYSRC
|
WINEDDBLT_KEYSRCOVERRIDE
))
==
0
)
{
TRACE
(
"Using stretch_rect_fbo
\n
"
);
TRACE
(
"Using stretch_rect_fbo
\n
"
);
...
@@ -3284,6 +3295,10 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
...
@@ -3284,6 +3295,10 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
*/
*/
stretch_rect_fbo
((
IWineD3DDevice
*
)
myDevice
,
SrcSurface
,
(
WINED3DRECT
*
)
&
SourceRectangle
,
stretch_rect_fbo
((
IWineD3DDevice
*
)
myDevice
,
SrcSurface
,
(
WINED3DRECT
*
)
&
SourceRectangle
,
(
IWineD3DSurface
*
)
This
,
&
rect
,
Filter
,
FALSE
);
(
IWineD3DSurface
*
)
This
,
&
rect
,
Filter
,
FALSE
);
/* Clear the palette as the surface didn't have a palette attached, it would confuse GetPalette and other calls */
if
(
paletteOverride
)
Src
->
palette
=
NULL
;
return
WINED3D_OK
;
return
WINED3D_OK
;
}
}
...
@@ -3313,16 +3328,6 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
...
@@ -3313,16 +3328,6 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
Src
->
CKeyFlags
&=
~
WINEDDSD_CKSRCBLT
;
Src
->
CKeyFlags
&=
~
WINEDDSD_CKSRCBLT
;
}
}
/* When blitting from an offscreen surface to a rendertarget, the source
* surface is not required to have a palette. Our rendering / conversion
* code further down the road retrieves the palette from the surface, so
* it must have a palette set. */
if
((
Src
->
resource
.
format
==
WINED3DFMT_P8
)
&&
(
Src
->
palette
==
NULL
))
{
paletteOverride
=
TRUE
;
TRACE
(
"Source surface (%p) lacks palette, overriding palette with palette %p of destination surface (%p)
\n
"
,
Src
,
This
->
palette
,
This
);
Src
->
palette
=
This
->
palette
;
}
/* Now load the surface */
/* Now load the surface */
IWineD3DSurface_PreLoad
((
IWineD3DSurface
*
)
Src
);
IWineD3DSurface_PreLoad
((
IWineD3DSurface
*
)
Src
);
...
...
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