Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
4a6d0da2
Commit
4a6d0da2
authored
Nov 30, 2010
by
Henri Verbeet
Committed by
Alexandre Julliard
Dec 01, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Pass an IWineD3DDeviceImpl pointer to shader_update_float_vertex_constants().
parent
fad461ee
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
16 additions
and
19 deletions
+16
-19
arb_program_shader.c
dlls/wined3d/arb_program_shader.c
+3
-4
device.c
dlls/wined3d/device.c
+1
-1
glsl_shader.c
dlls/wined3d/glsl_shader.c
+4
-5
shader.c
dlls/wined3d/shader.c
+1
-1
wined3d_private.h
dlls/wined3d/wined3d_private.h
+7
-8
No files found.
dlls/wined3d/arb_program_shader.c
View file @
4a6d0da2
...
...
@@ -653,17 +653,16 @@ static void shader_arb_load_constants(const struct wined3d_context *context, cha
}
}
static
void
shader_arb_update_float_vertex_constants
(
IWineD3DDevice
*
ifa
ce
,
UINT
start
,
UINT
count
)
static
void
shader_arb_update_float_vertex_constants
(
IWineD3DDevice
Impl
*
devi
ce
,
UINT
start
,
UINT
count
)
{
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
struct
wined3d_context
*
context
=
context_get_current
();
/* We don't want shader constant dirtification to be an O(contexts), so just dirtify the active
* context. On a context switch the old context will be fully dirtified */
if
(
!
context
||
context
->
swapchain
->
device
!=
This
)
return
;
if
(
!
context
||
context
->
swapchain
->
device
!=
device
)
return
;
memset
(
context
->
vshader_const_dirty
+
start
,
1
,
sizeof
(
*
context
->
vshader_const_dirty
)
*
count
);
This
->
highest_dirty_vs_const
=
max
(
This
->
highest_dirty_vs_const
,
start
+
count
);
device
->
highest_dirty_vs_const
=
max
(
device
->
highest_dirty_vs_const
,
start
+
count
);
}
static
void
shader_arb_update_float_pixel_constants
(
IWineD3DDevice
*
iface
,
UINT
start
,
UINT
count
)
...
...
dlls/wined3d/device.c
View file @
4a6d0da2
...
...
@@ -3460,7 +3460,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetVertexShaderConstantF(
if
(
!
This
->
isRecordingState
)
{
This
->
shader_backend
->
shader_update_float_vertex_constants
(
iface
,
start
,
count
);
This
->
shader_backend
->
shader_update_float_vertex_constants
(
This
,
start
,
count
);
IWineD3DDeviceImpl_MarkStateDirty
(
This
,
STATE_VERTEXSHADERCONSTANT
);
}
...
...
dlls/wined3d/glsl_shader.c
View file @
4a6d0da2
...
...
@@ -4,7 +4,7 @@
* Copyright 2006 Jason Green
* Copyright 2006-2007 Henri Verbeet
* Copyright 2007-2008 Stefan Dösinger for CodeWeavers
* Copyright 2009 Henri Verbeet for CodeWeavers
* Copyright 2009
-2010
Henri Verbeet for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
...
...
@@ -863,16 +863,15 @@ static inline void update_heap_entry(struct constant_heap *heap, unsigned int id
positions
[
idx
]
=
heap_idx
;
}
static
void
shader_glsl_update_float_vertex_constants
(
IWineD3DDevice
*
ifa
ce
,
UINT
start
,
UINT
count
)
static
void
shader_glsl_update_float_vertex_constants
(
IWineD3DDevice
Impl
*
devi
ce
,
UINT
start
,
UINT
count
)
{
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
struct
shader_glsl_priv
*
priv
=
This
->
shader_priv
;
struct
shader_glsl_priv
*
priv
=
device
->
shader_priv
;
struct
constant_heap
*
heap
=
&
priv
->
vconst_heap
;
UINT
i
;
for
(
i
=
start
;
i
<
count
+
start
;
++
i
)
{
if
(
!
This
->
stateBlock
->
changed
.
vertexShaderConstantsF
[
i
])
if
(
!
device
->
stateBlock
->
changed
.
vertexShaderConstantsF
[
i
])
update_heap_entry
(
heap
,
i
,
heap
->
size
++
,
priv
->
next_constant_version
);
else
update_heap_entry
(
heap
,
i
,
heap
->
positions
[
i
],
priv
->
next_constant_version
);
...
...
dlls/wined3d/shader.c
View file @
4a6d0da2
...
...
@@ -1513,7 +1513,7 @@ static void shader_none_select(const struct wined3d_context *context, BOOL usePS
static
void
shader_none_select_depth_blt
(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
const
SIZE
*
ds_mask_size
)
{}
static
void
shader_none_deselect_depth_blt
(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
)
{}
static
void
shader_none_update_float_vertex_constants
(
IWineD3DDevice
*
ifa
ce
,
UINT
start
,
UINT
count
)
{}
static
void
shader_none_update_float_vertex_constants
(
IWineD3DDevice
Impl
*
devi
ce
,
UINT
start
,
UINT
count
)
{}
static
void
shader_none_update_float_pixel_constants
(
IWineD3DDevice
*
iface
,
UINT
start
,
UINT
count
)
{}
static
void
shader_none_load_constants
(
const
struct
wined3d_context
*
context
,
char
usePS
,
char
useVS
)
{}
static
void
shader_none_load_np2fixup_constants
(
void
*
shader_priv
,
...
...
dlls/wined3d/wined3d_private.h
View file @
4a6d0da2
...
...
@@ -52,6 +52,12 @@
#define WINED3D_QUIRK_NV_CLIP_BROKEN 0x00000010
#define WINED3D_QUIRK_FBO_TEX_UPDATE 0x00000020
typedef
struct
IWineD3DStateBlockImpl
IWineD3DStateBlockImpl
;
typedef
struct
IWineD3DSurfaceImpl
IWineD3DSurfaceImpl
;
typedef
struct
IWineD3DPaletteImpl
IWineD3DPaletteImpl
;
typedef
struct
IWineD3DDeviceImpl
IWineD3DDeviceImpl
;
typedef
struct
IWineD3DSwapChainImpl
IWineD3DSwapChainImpl
;
/* Texture format fixups */
enum
fixup_channel_source
...
...
@@ -747,7 +753,7 @@ typedef struct {
void
(
*
shader_select_depth_blt
)(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
enum
tex_types
tex_type
,
const
SIZE
*
ds_mask_size
);
void
(
*
shader_deselect_depth_blt
)(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
);
void
(
*
shader_update_float_vertex_constants
)(
IWineD3DDevice
*
ifa
ce
,
UINT
start
,
UINT
count
);
void
(
*
shader_update_float_vertex_constants
)(
IWineD3DDevice
Impl
*
devi
ce
,
UINT
start
,
UINT
count
);
void
(
*
shader_update_float_pixel_constants
)(
IWineD3DDevice
*
iface
,
UINT
start
,
UINT
count
);
void
(
*
shader_load_constants
)(
const
struct
wined3d_context
*
context
,
char
usePS
,
char
useVS
);
void
(
*
shader_load_np2fixup_constants
)(
void
*
shader_priv
,
const
struct
wined3d_gl_info
*
gl_info
,
...
...
@@ -848,13 +854,6 @@ do {
si->elements[name].data, si->elements[name].stride, si->elements[name].format->id, \
si->elements[name].buffer_object, si->elements[name].stream_idx); } while(0)
/* Advance declaration of structures to satisfy compiler */
typedef
struct
IWineD3DStateBlockImpl
IWineD3DStateBlockImpl
;
typedef
struct
IWineD3DSurfaceImpl
IWineD3DSurfaceImpl
;
typedef
struct
IWineD3DPaletteImpl
IWineD3DPaletteImpl
;
typedef
struct
IWineD3DDeviceImpl
IWineD3DDeviceImpl
;
typedef
struct
IWineD3DSwapChainImpl
IWineD3DSwapChainImpl
;
/* Global variables */
extern
const
float
identity
[
16
]
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