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
b81e5605
Commit
b81e5605
authored
Jan 17, 2014
by
Stefan Dösinger
Committed by
Alexandre Julliard
Jan 17, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Migrate surfaces to the new location flags.
parent
beb64c99
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
65 additions
and
79 deletions
+65
-79
arb_program_shader.c
dlls/wined3d/arb_program_shader.c
+2
-1
context.c
dlls/wined3d/context.c
+20
-20
cs.c
dlls/wined3d/cs.c
+1
-1
device.c
dlls/wined3d/device.c
+5
-5
drawprim.c
dlls/wined3d/drawprim.c
+2
-2
surface.c
dlls/wined3d/surface.c
+0
-0
swapchain.c
dlls/wined3d/swapchain.c
+21
-19
utils.c
dlls/wined3d/utils.c
+6
-17
wined3d_private.h
dlls/wined3d/wined3d_private.h
+8
-14
No files found.
dlls/wined3d/arb_program_shader.c
View file @
b81e5605
...
...
@@ -7454,7 +7454,8 @@ HRESULT arbfp_blit_surface(struct wined3d_device *device, DWORD filter,
/* Now load the surface */
if
(
wined3d_settings
.
offscreen_rendering_mode
!=
ORM_FBO
&&
(
src_surface
->
locations
&
(
SFLAG_INTEXTURE
|
SFLAG_INDRAWABLE
))
==
SFLAG_INDRAWABLE
&&
(
src_surface
->
locations
&
(
WINED3D_LOCATION_TEXTURE_RGB
|
WINED3D_LOCATION_DRAWABLE
))
==
WINED3D_LOCATION_DRAWABLE
&&
!
surface_is_offscreen
(
src_surface
))
{
/* Without FBO blits transferring from the drawable to the texture is
...
...
dlls/wined3d/context.c
View file @
b81e5605
...
...
@@ -139,8 +139,8 @@ static void context_attach_depth_stencil_fbo(struct wined3d_context *context,
{
switch
(
location
)
{
case
SFLAG_INTEXTURE
:
case
SFLAG_INSRGBTEX
:
case
WINED3D_LOCATION_TEXTURE_RGB
:
case
WINED3D_LOCATION_TEXTURE_SRGB
:
surface_prepare_texture
(
depth_stencil
,
context
,
FALSE
);
if
(
format_flags
&
WINED3DFMT_FLAG_DEPTH
)
...
...
@@ -160,20 +160,20 @@ static void context_attach_depth_stencil_fbo(struct wined3d_context *context,
}
break
;
case
SFLAG_IN
RB_MULTISAMPLE
:
case
WINED3D_LOCATION_
RB_MULTISAMPLE
:
surface_prepare_rb
(
depth_stencil
,
gl_info
,
TRUE
);
context_attach_depth_stencil_rb
(
gl_info
,
fbo_target
,
format_flags
,
depth_stencil
->
rb_multisample
);
break
;
case
SFLAG_IN
RB_RESOLVED
:
case
WINED3D_LOCATION_
RB_RESOLVED
:
surface_prepare_rb
(
depth_stencil
,
gl_info
,
FALSE
);
context_attach_depth_stencil_rb
(
gl_info
,
fbo_target
,
format_flags
,
depth_stencil
->
rb_resolved
);
break
;
default:
ERR
(
"Unsupported location %s (%#x).
\n
"
,
debug_surf
location
(
location
),
location
);
ERR
(
"Unsupported location %s (%#x).
\n
"
,
wined3d_debug_
location
(
location
),
location
);
break
;
}
}
...
...
@@ -214,9 +214,9 @@ static void context_attach_surface_fbo(struct wined3d_context *context,
switch
(
location
)
{
case
SFLAG_INTEXTURE
:
case
SFLAG_INSRGBTEX
:
srgb
=
location
==
SFLAG_INSRGBTEX
;
case
WINED3D_LOCATION_TEXTURE_RGB
:
case
WINED3D_LOCATION_TEXTURE_SRGB
:
srgb
=
location
==
WINED3D_LOCATION_TEXTURE_SRGB
;
surface_prepare_texture
(
surface
,
context
,
srgb
);
gl_info
->
fbo_ops
.
glFramebufferTexture2D
(
fbo_target
,
GL_COLOR_ATTACHMENT0
+
idx
,
surface
->
texture_target
,
surface_get_texture_name
(
surface
,
gl_info
,
srgb
),
...
...
@@ -224,14 +224,14 @@ static void context_attach_surface_fbo(struct wined3d_context *context,
checkGLcall
(
"glFramebufferTexture2D()"
);
break
;
case
SFLAG_IN
RB_MULTISAMPLE
:
case
WINED3D_LOCATION_
RB_MULTISAMPLE
:
surface_prepare_rb
(
surface
,
gl_info
,
TRUE
);
gl_info
->
fbo_ops
.
glFramebufferRenderbuffer
(
fbo_target
,
GL_COLOR_ATTACHMENT0
+
idx
,
GL_RENDERBUFFER
,
surface
->
rb_multisample
);
checkGLcall
(
"glFramebufferRenderbuffer()"
);
break
;
case
SFLAG_IN
RB_RESOLVED
:
case
WINED3D_LOCATION_
RB_RESOLVED
:
surface_prepare_rb
(
surface
,
gl_info
,
FALSE
);
gl_info
->
fbo_ops
.
glFramebufferRenderbuffer
(
fbo_target
,
GL_COLOR_ATTACHMENT0
+
idx
,
GL_RENDERBUFFER
,
surface
->
rb_resolved
);
...
...
@@ -239,7 +239,7 @@ static void context_attach_surface_fbo(struct wined3d_context *context,
break
;
default:
ERR
(
"Unsupported location %s (%#x).
\n
"
,
debug_surf
location
(
location
),
location
);
ERR
(
"Unsupported location %s (%#x).
\n
"
,
wined3d_debug_
location
(
location
),
location
);
break
;
}
}
...
...
@@ -276,7 +276,7 @@ void context_check_fbo_status(const struct wined3d_context *context, GLenum targ
return
;
}
FIXME
(
"
\t
Location %s (%#x).
\n
"
,
debug_surf
location
(
context
->
current_fbo
->
location
),
FIXME
(
"
\t
Location %s (%#x).
\n
"
,
wined3d_debug_
location
(
context
->
current_fbo
->
location
),
context
->
current_fbo
->
location
);
/* Dump the FBO attachments */
...
...
@@ -467,7 +467,7 @@ static void context_apply_fbo_state(struct wined3d_context *context, GLenum targ
context
->
rebind_fbo
=
FALSE
;
}
if
(
location
==
SFLAG_IN
DRAWABLE
)
if
(
location
==
WINED3D_LOCATION_
DRAWABLE
)
{
context
->
current_fbo
=
NULL
;
context_bind_fbo
(
context
,
target
,
0
);
...
...
@@ -2096,7 +2096,7 @@ static void context_validate_onscreen_formats(struct wined3d_context *context,
WARN
(
"Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO
\n
"
);
/* The currently active context is the necessary context to access the swapchain's onscreen buffers */
surface_load_location
(
context
->
current_rt
,
SFLAG_INTEXTURE
);
surface_load_location
(
context
->
current_rt
,
WINED3D_LOCATION_TEXTURE_RGB
);
swapchain
->
render_to_fbo
=
TRUE
;
swapchain_update_draw_bindings
(
swapchain
);
context_set_render_offscreen
(
context
,
TRUE
);
...
...
@@ -2211,11 +2211,11 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win
++
i
;
}
context_apply_fbo_state
(
context
,
GL_FRAMEBUFFER
,
context
->
blit_targets
,
fb
->
depth_stencil
,
rt_count
?
rts
[
0
]
->
draw_binding
:
SFLAG_INTEXTURE
);
rt_count
?
rts
[
0
]
->
draw_binding
:
WINED3D_LOCATION_TEXTURE_RGB
);
}
else
{
context_apply_fbo_state
(
context
,
GL_FRAMEBUFFER
,
NULL
,
NULL
,
SFLAG_IN
DRAWABLE
);
context_apply_fbo_state
(
context
,
GL_FRAMEBUFFER
,
NULL
,
NULL
,
WINED3D_LOCATION_
DRAWABLE
);
rt_mask
=
context_generate_rt_mask_from_surface
(
rts
[
0
]);
}
...
...
@@ -2312,7 +2312,7 @@ void context_state_fb(struct wined3d_context *context, const struct wined3d_stat
{
if
(
!
context
->
render_offscreen
)
{
context_apply_fbo_state
(
context
,
GL_FRAMEBUFFER
,
NULL
,
NULL
,
SFLAG_IN
DRAWABLE
);
context_apply_fbo_state
(
context
,
GL_FRAMEBUFFER
,
NULL
,
NULL
,
WINED3D_LOCATION_
DRAWABLE
);
}
else
{
...
...
@@ -2928,8 +2928,8 @@ static void context_setup_target(struct wined3d_context *context, struct wined3d
/* When switching away from an offscreen render target, and we're not
* using FBOs, we have to read the drawable into the texture. This is
* done via PreLoad (and
SFLAG_INDRAWABLE set on the surface). There
* are some things that need care though. PreLoad needs a GL context,
* done via PreLoad (and
WINED3D_LOCATION_DRAWABLE set on the surface).
*
There
are some things that need care though. PreLoad needs a GL context,
* and FindContext is called before the context is activated. It also
* has to be called with the old rendertarget active, otherwise a
* wrong drawable is read. */
...
...
@@ -2942,7 +2942,7 @@ static void context_setup_target(struct wined3d_context *context, struct wined3d
if
(
texture
->
texture_srgb
.
name
)
wined3d_texture_load
(
texture
,
context
,
TRUE
);
wined3d_texture_load
(
texture
,
context
,
FALSE
);
surface_invalidate_location
(
context
->
current_rt
,
SFLAG_IN
DRAWABLE
);
surface_invalidate_location
(
context
->
current_rt
,
WINED3D_LOCATION_
DRAWABLE
);
}
}
...
...
dlls/wined3d/cs.c
View file @
b81e5605
...
...
@@ -378,7 +378,7 @@ static void wined3d_cs_exec_set_depth_stencil(struct wined3d_cs *cs, const void
if
(
device
->
swapchains
[
0
]
->
desc
.
flags
&
WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL
||
prev
->
flags
&
SFLAG_DISCARD
)
{
surface_modify_ds_location
(
prev
,
SFLAG
_DISCARDED
,
surface_modify_ds_location
(
prev
,
WINED3D_LOCATION
_DISCARDED
,
prev
->
resource
.
width
,
prev
->
resource
.
height
);
if
(
prev
==
device
->
onscreen_depth_stencil
)
{
...
...
dlls/wined3d/device.c
View file @
b81e5605
...
...
@@ -201,9 +201,9 @@ void device_switch_onscreen_ds(struct wined3d_device *device,
{
if
(
device
->
onscreen_depth_stencil
)
{
surface_load_ds_location
(
device
->
onscreen_depth_stencil
,
context
,
SFLAG_INTEXTURE
);
surface_load_ds_location
(
device
->
onscreen_depth_stencil
,
context
,
WINED3D_LOCATION_TEXTURE_RGB
);
surface_modify_ds_location
(
device
->
onscreen_depth_stencil
,
SFLAG_INTEXTURE
,
surface_modify_ds_location
(
device
->
onscreen_depth_stencil
,
WINED3D_LOCATION_TEXTURE_RGB
,
device
->
onscreen_depth_stencil
->
ds_current_size
.
cx
,
device
->
onscreen_depth_stencil
->
ds_current_size
.
cy
);
wined3d_surface_decref
(
device
->
onscreen_depth_stencil
);
...
...
@@ -234,7 +234,7 @@ static void prepare_ds_clear(struct wined3d_surface *ds, struct wined3d_context
{
RECT
current_rect
,
r
;
if
(
ds
->
locations
&
SFLAG
_DISCARDED
)
if
(
ds
->
locations
&
WINED3D_LOCATION
_DISCARDED
)
{
/* Depth buffer was discarded, make it entirely current in its new location since
* there is no other place where we would get data anyway. */
...
...
@@ -337,7 +337,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
if
(
flags
&
WINED3DCLEAR_ZBUFFER
)
{
DWORD
location
=
render_offscreen
?
fb
->
depth_stencil
->
draw_binding
:
SFLAG_IN
DRAWABLE
;
DWORD
location
=
render_offscreen
?
fb
->
depth_stencil
->
draw_binding
:
WINED3D_LOCATION_
DRAWABLE
;
if
(
!
render_offscreen
&&
fb
->
depth_stencil
!=
device
->
onscreen_depth_stencil
)
device_switch_onscreen_ds
(
device
,
context
,
fb
->
depth_stencil
);
...
...
@@ -369,7 +369,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
if
(
flags
&
WINED3DCLEAR_ZBUFFER
)
{
DWORD
location
=
render_offscreen
?
fb
->
depth_stencil
->
draw_binding
:
SFLAG_IN
DRAWABLE
;
DWORD
location
=
render_offscreen
?
fb
->
depth_stencil
->
draw_binding
:
WINED3D_LOCATION_
DRAWABLE
;
surface_modify_ds_location
(
fb
->
depth_stencil
,
location
,
ds_rect
.
right
,
ds_rect
.
bottom
);
...
...
dlls/wined3d/drawprim.c
View file @
b81e5605
...
...
@@ -639,7 +639,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
* depthstencil for D3DCMP_NEVER and D3DCMP_ALWAYS as well. Also note
* that we never copy the stencil data.*/
DWORD
location
=
context
->
render_offscreen
?
device
->
fb
.
depth_stencil
->
draw_binding
:
SFLAG_IN
DRAWABLE
;
device
->
fb
.
depth_stencil
->
draw_binding
:
WINED3D_LOCATION_
DRAWABLE
;
if
(
state
->
render_states
[
WINED3D_RS_ZWRITEENABLE
]
||
state
->
render_states
[
WINED3D_RS_ZENABLE
])
{
struct
wined3d_surface
*
ds
=
device
->
fb
.
depth_stencil
;
...
...
@@ -671,7 +671,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
if
(
device
->
fb
.
depth_stencil
&&
state
->
render_states
[
WINED3D_RS_ZWRITEENABLE
])
{
struct
wined3d_surface
*
ds
=
device
->
fb
.
depth_stencil
;
DWORD
location
=
context
->
render_offscreen
?
ds
->
draw_binding
:
SFLAG_IN
DRAWABLE
;
DWORD
location
=
context
->
render_offscreen
?
ds
->
draw_binding
:
WINED3D_LOCATION_
DRAWABLE
;
surface_modify_ds_location
(
ds
,
location
,
ds
->
ds_current_size
.
cx
,
ds
->
ds_current_size
.
cy
);
}
...
...
dlls/wined3d/surface.c
View file @
b81e5605
This diff is collapsed.
Click to expand it.
dlls/wined3d/swapchain.c
View file @
b81e5605
...
...
@@ -297,11 +297,11 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain,
if
(
gl_info
->
fbo_ops
.
glBlitFramebuffer
&&
is_identity_fixup
(
backbuffer
->
resource
.
format
->
color_fixup
))
{
DWORD
location
=
SFLAG_INTEXTURE
;
DWORD
location
=
WINED3D_LOCATION_TEXTURE_RGB
;
if
(
backbuffer
->
resource
.
multisample_type
)
{
location
=
SFLAG_IN
RB_RESOLVED
;
location
=
WINED3D_LOCATION_
RB_RESOLVED
;
surface_load_location
(
backbuffer
,
location
);
}
...
...
@@ -309,7 +309,8 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain,
gl_info
->
gl_ops
.
gl
.
p_glReadBuffer
(
GL_COLOR_ATTACHMENT0
);
context_check_fbo_status
(
context
,
GL_READ_FRAMEBUFFER
);
context_apply_fbo_state_blit
(
context
,
GL_DRAW_FRAMEBUFFER
,
swapchain
->
front_buffer
,
NULL
,
SFLAG_INDRAWABLE
);
context_apply_fbo_state_blit
(
context
,
GL_DRAW_FRAMEBUFFER
,
swapchain
->
front_buffer
,
NULL
,
WINED3D_LOCATION_DRAWABLE
);
context_set_draw_buffer
(
context
,
GL_BACK
);
context_invalidate_state
(
context
,
STATE_FRAMEBUFFER
);
...
...
@@ -351,7 +352,8 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain,
if
(
is_complex_fixup
(
backbuffer
->
resource
.
format
->
color_fixup
))
gl_filter
=
GL_NEAREST
;
context_apply_fbo_state_blit
(
context2
,
GL_FRAMEBUFFER
,
swapchain
->
front_buffer
,
NULL
,
SFLAG_INDRAWABLE
);
context_apply_fbo_state_blit
(
context2
,
GL_FRAMEBUFFER
,
swapchain
->
front_buffer
,
NULL
,
WINED3D_LOCATION_DRAWABLE
);
context_bind_texture
(
context2
,
backbuffer
->
texture_target
,
backbuffer
->
container
->
texture_rgb
.
name
);
/* Set up the texture. The surface is not in a wined3d_texture
...
...
@@ -498,8 +500,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
*/
if
(
!
swapchain
->
render_to_fbo
&&
render_to_fbo
&&
wined3d_settings
.
offscreen_rendering_mode
==
ORM_FBO
)
{
surface_load_location
(
back_buffer
,
SFLAG_INTEXTURE
);
surface_invalidate_location
(
back_buffer
,
SFLAG_IN
DRAWABLE
);
surface_load_location
(
back_buffer
,
WINED3D_LOCATION_TEXTURE_RGB
);
surface_invalidate_location
(
back_buffer
,
WINED3D_LOCATION_
DRAWABLE
);
swapchain
->
render_to_fbo
=
TRUE
;
swapchain_update_draw_bindings
(
swapchain
);
}
...
...
@@ -541,8 +543,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
}
}
if
(
!
swapchain
->
render_to_fbo
&&
((
swapchain
->
front_buffer
->
locations
&
SFLAG_IN
SYSMEM
)
||
(
back_buffer
->
locations
&
SFLAG_IN
SYSMEM
)))
if
(
!
swapchain
->
render_to_fbo
&&
((
swapchain
->
front_buffer
->
locations
&
WINED3D_LOCATION_
SYSMEM
)
||
(
back_buffer
->
locations
&
WINED3D_LOCATION_
SYSMEM
)))
{
/* Both memory copies of the surfaces are ok, flip them around too instead of dirtifying
* Doesn't work with render_to_fbo because we're not flipping
...
...
@@ -556,20 +558,20 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
/* Tell the front buffer surface that is has been modified. However,
* the other locations were preserved during that, so keep the flags.
* This serves to update the emulated overlay, if any. */
surface_validate_location
(
front
,
SFLAG_IN
DRAWABLE
);
surface_validate_location
(
front
,
WINED3D_LOCATION_
DRAWABLE
);
}
else
{
surface_validate_location
(
front
,
SFLAG_IN
DRAWABLE
);
surface_invalidate_location
(
front
,
~
SFLAG_IN
DRAWABLE
);
surface_validate_location
(
back_buffer
,
SFLAG_IN
DRAWABLE
);
surface_invalidate_location
(
back_buffer
,
~
SFLAG_IN
DRAWABLE
);
surface_validate_location
(
front
,
WINED3D_LOCATION_
DRAWABLE
);
surface_invalidate_location
(
front
,
~
WINED3D_LOCATION_
DRAWABLE
);
surface_validate_location
(
back_buffer
,
WINED3D_LOCATION_
DRAWABLE
);
surface_invalidate_location
(
back_buffer
,
~
WINED3D_LOCATION_
DRAWABLE
);
}
}
else
{
surface_validate_location
(
swapchain
->
front_buffer
,
SFLAG_IN
DRAWABLE
);
surface_invalidate_location
(
swapchain
->
front_buffer
,
~
SFLAG_IN
DRAWABLE
);
surface_validate_location
(
swapchain
->
front_buffer
,
WINED3D_LOCATION_
DRAWABLE
);
surface_invalidate_location
(
swapchain
->
front_buffer
,
~
WINED3D_LOCATION_
DRAWABLE
);
/* If the swapeffect is DISCARD, the back buffer is undefined. That means the SYSMEM
* and INTEXTURE copies can keep their old content if they have any defined content.
* If the swapeffect is COPY, the content remains the same. If it is FLIP however,
...
...
@@ -587,7 +589,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
if
(
swapchain
->
desc
.
flags
&
WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL
||
fb
->
depth_stencil
->
flags
&
SFLAG_DISCARD
)
{
surface_modify_ds_location
(
fb
->
depth_stencil
,
SFLAG
_DISCARDED
,
surface_modify_ds_location
(
fb
->
depth_stencil
,
WINED3D_LOCATION
_DISCARDED
,
fb
->
depth_stencil
->
resource
.
width
,
fb
->
depth_stencil
->
resource
.
height
);
if
(
fb
->
depth_stencil
==
swapchain
->
device
->
onscreen_depth_stencil
)
...
...
@@ -623,7 +625,7 @@ void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *r
TRACE
(
"Copying surface %p to screen.
\n
"
,
front
);
surface_load_location
(
front
,
SFLAG_IN
DIB
);
surface_load_location
(
front
,
WINED3D_LOCATION_
DIB
);
src_dc
=
front
->
hDC
;
window
=
swapchain
->
win_handle
;
...
...
@@ -846,8 +848,8 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
surface_set_swapchain
(
swapchain
->
front_buffer
,
swapchain
);
if
(
!
(
device
->
wined3d
->
flags
&
WINED3D_NO3D
))
{
surface_validate_location
(
swapchain
->
front_buffer
,
SFLAG_IN
DRAWABLE
);
surface_invalidate_location
(
swapchain
->
front_buffer
,
~
SFLAG_IN
DRAWABLE
);
surface_validate_location
(
swapchain
->
front_buffer
,
WINED3D_LOCATION_
DRAWABLE
);
surface_invalidate_location
(
swapchain
->
front_buffer
,
~
WINED3D_LOCATION_
DRAWABLE
);
}
/* MSDN says we're only allowed a single fullscreen swapchain per device,
...
...
dlls/wined3d/utils.c
View file @
b81e5605
...
...
@@ -2794,22 +2794,6 @@ void dump_color_fixup_desc(struct color_fixup_desc fixup)
TRACE
(
"
\t
W: %s%s
\n
"
,
debug_fixup_channel_source
(
fixup
.
w_source
),
fixup
.
w_sign_fixup
?
", SIGN_FIXUP"
:
""
);
}
const
char
*
debug_surflocation
(
DWORD
flag
)
{
char
buf
[
172
];
buf
[
0
]
=
0
;
if
(
flag
&
SFLAG_INSYSMEM
)
strcat
(
buf
,
" | SFLAG_INSYSMEM"
);
/* 17 */
if
(
flag
&
SFLAG_INDRAWABLE
)
strcat
(
buf
,
" | SFLAG_INDRAWABLE"
);
/* 19 */
if
(
flag
&
SFLAG_INTEXTURE
)
strcat
(
buf
,
" | SFLAG_INTEXTURE"
);
/* 18 */
if
(
flag
&
SFLAG_INSRGBTEX
)
strcat
(
buf
,
" | SFLAG_INSRGBTEX"
);
/* 18 */
if
(
flag
&
SFLAG_INRB_MULTISAMPLE
)
strcat
(
buf
,
" | SFLAG_INRB_MULTISAMPLE"
);
/* 25 */
if
(
flag
&
SFLAG_INRB_RESOLVED
)
strcat
(
buf
,
" | SFLAG_INRB_RESOLVED"
);
/* 22 */
if
(
flag
&
SFLAG_INUSERMEM
)
strcat
(
buf
,
" | SFLAG_INUSERMEM"
);
/* 18 */
if
(
flag
&
SFLAG_INDIB
)
strcat
(
buf
,
" | SFLAG_INDIB"
);
/* 14 */
if
(
flag
&
SFLAG_INBUFFER
)
strcat
(
buf
,
" | SFLAG_INBUFFER"
);
/* 17 */
return
wine_dbg_sprintf
(
"%s"
,
buf
[
0
]
?
buf
+
3
:
"0"
);
}
BOOL
is_invalid_op
(
const
struct
wined3d_state
*
state
,
int
stage
,
enum
wined3d_texture_op
op
,
DWORD
arg1
,
DWORD
arg2
,
DWORD
arg3
)
{
...
...
@@ -3792,15 +3776,20 @@ void wined3d_get_draw_rect(const struct wined3d_state *state, RECT *rect)
const
char
*
wined3d_debug_location
(
DWORD
location
)
{
char
buf
[
2
00
];
char
buf
[
2
94
];
buf
[
0
]
=
'\0'
;
#define LOCATION_TO_STR(u) if (location & u) { strcat(buf, " | "#u); location &= ~u; }
LOCATION_TO_STR
(
WINED3D_LOCATION_DISCARDED
);
LOCATION_TO_STR
(
WINED3D_LOCATION_SYSMEM
);
LOCATION_TO_STR
(
WINED3D_LOCATION_USER_MEMORY
);
LOCATION_TO_STR
(
WINED3D_LOCATION_DIB
);
LOCATION_TO_STR
(
WINED3D_LOCATION_BUFFER
);
LOCATION_TO_STR
(
WINED3D_LOCATION_TEXTURE_RGB
);
LOCATION_TO_STR
(
WINED3D_LOCATION_TEXTURE_SRGB
);
LOCATION_TO_STR
(
WINED3D_LOCATION_DRAWABLE
);
LOCATION_TO_STR
(
WINED3D_LOCATION_RB_MULTISAMPLE
);
LOCATION_TO_STR
(
WINED3D_LOCATION_RB_RESOLVED
);
#undef LOCATION_TO_STR
if
(
location
)
FIXME
(
"Unrecognized location flag(s) %#x.
\n
"
,
location
);
...
...
dlls/wined3d/wined3d_private.h
View file @
b81e5605
...
...
@@ -2119,9 +2119,14 @@ void wined3d_texture_set_dirty(struct wined3d_texture *texture) DECLSPEC_HIDDEN;
#define WINED3D_LOCATION_DISCARDED 0x00000001
#define WINED3D_LOCATION_SYSMEM 0x00000002
#define WINED3D_LOCATION_BUFFER 0x00000004
#define WINED3D_LOCATION_TEXTURE_RGB 0x00000008
#define WINED3D_LOCATION_TEXTURE_SRGB 0x00000010
#define WINED3D_LOCATION_USER_MEMORY 0x00000004
#define WINED3D_LOCATION_DIB 0x00000008
#define WINED3D_LOCATION_BUFFER 0x00000010
#define WINED3D_LOCATION_TEXTURE_RGB 0x00000020
#define WINED3D_LOCATION_TEXTURE_SRGB 0x00000040
#define WINED3D_LOCATION_DRAWABLE 0x00000080
#define WINED3D_LOCATION_RB_MULTISAMPLE 0x00000100
#define WINED3D_LOCATION_RB_RESOLVED 0x00000200
const
char
*
wined3d_debug_location
(
DWORD
location
)
DECLSPEC_HIDDEN
;
...
...
@@ -2295,16 +2300,6 @@ void flip_surface(struct wined3d_surface *front, struct wined3d_surface *back) D
#define SFLAG_DIBSECTION 0x00000400
/* Has a DIB section attached for GetDC. */
#define SFLAG_ALLOCATED 0x00000800
/* A GL texture is allocated for this surface. */
#define SFLAG_SRGBALLOCATED 0x00001000
/* A sRGB GL texture is allocated for this surface. */
#define SFLAG_INSYSMEM 0x00002000
/* The system memory copy is current. */
#define SFLAG_INUSERMEM 0x00004000
/* The user memory copy is current. */
#define SFLAG_INDIB 0x00008000
/* The DIB copy is current. */
#define SFLAG_INBUFFER 0x00010000
/* The PBO copy is current. */
#define SFLAG_INTEXTURE 0x00020000
/* The GL texture is current. */
#define SFLAG_INSRGBTEX 0x00040000
/* The GL sRGB texture is current. */
#define SFLAG_INDRAWABLE 0x00080000
/* The GL drawable is current. */
#define SFLAG_INRB_MULTISAMPLE 0x00100000
/* The multisample renderbuffer is current. */
#define SFLAG_INRB_RESOLVED 0x00200000
/* The resolved renderbuffer is current. */
#define SFLAG_DISCARDED 0x00400000
/* Surface was discarded, allocating new location is enough. */
/* In some conditions the surface memory must not be freed:
* SFLAG_CONVERTED: Converting the data back would take too long
...
...
@@ -2652,7 +2647,6 @@ const char *debug_fbostatus(GLenum status) DECLSPEC_HIDDEN;
const
char
*
debug_glerror
(
GLenum
error
)
DECLSPEC_HIDDEN
;
const
char
*
debug_d3dtop
(
enum
wined3d_texture_op
d3dtop
)
DECLSPEC_HIDDEN
;
void
dump_color_fixup_desc
(
struct
color_fixup_desc
fixup
)
DECLSPEC_HIDDEN
;
const
char
*
debug_surflocation
(
DWORD
flag
)
DECLSPEC_HIDDEN
;
BOOL
is_invalid_op
(
const
struct
wined3d_state
*
state
,
int
stage
,
enum
wined3d_texture_op
op
,
DWORD
arg1
,
DWORD
arg2
,
DWORD
arg3
)
DECLSPEC_HIDDEN
;
...
...
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