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
e01d2076
Commit
e01d2076
authored
Sep 16, 2014
by
Henri Verbeet
Committed by
Alexandre Julliard
Sep 16, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3d10core: Create wined3d views for shader resource views.
parent
4e73cd51
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
70 additions
and
0 deletions
+70
-0
d3d10core_private.h
dlls/d3d10core/d3d10core_private.h
+1
-0
view.c
dlls/d3d10core/view.c
+7
-0
view.c
dlls/wined3d/view.c
+44
-0
wined3d.spec
dlls/wined3d/wined3d.spec
+4
-0
wined3d_private.h
dlls/wined3d/wined3d_private.h
+8
-0
wined3d.h
include/wine/wined3d.h
+6
-0
No files found.
dlls/d3d10core/d3d10core_private.h
View file @
e01d2076
...
...
@@ -157,6 +157,7 @@ struct d3d10_shader_resource_view
ID3D10ShaderResourceView
ID3D10ShaderResourceView_iface
;
LONG
refcount
;
struct
wined3d_shader_resource_view
*
wined3d_view
;
D3D10_SHADER_RESOURCE_VIEW_DESC
desc
;
ID3D10Resource
*
resource
;
ID3D10Device1
*
device
;
...
...
dlls/d3d10core/view.c
View file @
e01d2076
...
...
@@ -894,6 +894,7 @@ static ULONG STDMETHODCALLTYPE d3d10_shader_resource_view_Release(ID3D10ShaderRe
if
(
!
refcount
)
{
wined3d_shader_resource_view_decref
(
This
->
wined3d_view
);
ID3D10Resource_Release
(
This
->
resource
);
ID3D10Device1_Release
(
This
->
device
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
...
...
@@ -1001,6 +1002,12 @@ HRESULT d3d10_shader_resource_view_init(struct d3d10_shader_resource_view *view,
view
->
desc
=
*
desc
;
}
if
(
FAILED
(
hr
=
wined3d_shader_resource_view_create
(
view
,
&
d3d10_null_wined3d_parent_ops
,
&
view
->
wined3d_view
)))
{
WARN
(
"Failed to create wined3d shader resource view, hr %#x.
\n
"
,
hr
);
return
hr
;
}
view
->
resource
=
resource
;
ID3D10Resource_AddRef
(
resource
);
view
->
device
=
&
device
->
ID3D10Device1_iface
;
...
...
dlls/wined3d/view.c
View file @
e01d2076
...
...
@@ -158,3 +158,47 @@ HRESULT CDECL wined3d_rendertarget_view_create_from_surface(struct wined3d_surfa
return
wined3d_rendertarget_view_create
(
&
desc
,
&
surface
->
container
->
resource
,
parent
,
parent_ops
,
view
);
}
ULONG
CDECL
wined3d_shader_resource_view_incref
(
struct
wined3d_shader_resource_view
*
view
)
{
ULONG
refcount
=
InterlockedIncrement
(
&
view
->
refcount
);
TRACE
(
"%p increasing refcount to %u.
\n
"
,
view
,
refcount
);
return
refcount
;
}
ULONG
CDECL
wined3d_shader_resource_view_decref
(
struct
wined3d_shader_resource_view
*
view
)
{
ULONG
refcount
=
InterlockedDecrement
(
&
view
->
refcount
);
TRACE
(
"%p decreasing refcount to %u.
\n
"
,
view
,
refcount
);
if
(
!
refcount
)
{
view
->
parent_ops
->
wined3d_object_destroyed
(
view
->
parent
);
HeapFree
(
GetProcessHeap
(),
0
,
view
);
}
return
refcount
;
}
HRESULT
CDECL
wined3d_shader_resource_view_create
(
void
*
parent
,
const
struct
wined3d_parent_ops
*
parent_ops
,
struct
wined3d_shader_resource_view
**
view
)
{
struct
wined3d_shader_resource_view
*
object
;
TRACE
(
"parent %p, parent_ops %p, view %p.
\n
"
,
parent
,
parent_ops
,
view
);
if
(
!
(
object
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
refcount
=
1
;
object
->
parent
=
parent
;
object
->
parent_ops
=
parent_ops
;
TRACE
(
"Created shader resource view %p.
\n
"
,
object
);
*
view
=
object
;
return
WINED3D_OK
;
}
dlls/wined3d/wined3d.spec
View file @
e01d2076
...
...
@@ -199,6 +199,10 @@
@ cdecl wined3d_shader_incref(ptr)
@ cdecl wined3d_shader_set_local_constants_float(ptr long ptr long)
@ cdecl wined3d_shader_resource_view_create(ptr ptr ptr)
@ cdecl wined3d_shader_resource_view_decref(ptr)
@ cdecl wined3d_shader_resource_view_incref(ptr)
@ cdecl wined3d_stateblock_apply(ptr)
@ cdecl wined3d_stateblock_capture(ptr)
@ cdecl wined3d_stateblock_create(ptr long ptr)
...
...
dlls/wined3d/wined3d_private.h
View file @
e01d2076
...
...
@@ -2646,6 +2646,14 @@ static inline struct wined3d_surface *wined3d_rendertarget_view_get_surface(
return
surface_from_resource
(
resource
);
}
struct
wined3d_shader_resource_view
{
LONG
refcount
;
void
*
parent
;
const
struct
wined3d_parent_ops
*
parent_ops
;
};
struct
wined3d_swapchain_ops
{
void
(
*
swapchain_present
)(
struct
wined3d_swapchain
*
swapchain
,
const
RECT
*
src_rect
,
...
...
include/wine/wined3d.h
View file @
e01d2076
...
...
@@ -1984,6 +1984,7 @@ struct wined3d_rendertarget_view;
struct
wined3d_resource
;
struct
wined3d_sampler
;
struct
wined3d_shader
;
struct
wined3d_shader_resource_view
;
struct
wined3d_stateblock
;
struct
wined3d_surface
;
struct
wined3d_swapchain
;
...
...
@@ -2409,6 +2410,11 @@ ULONG __cdecl wined3d_shader_incref(struct wined3d_shader *shader);
HRESULT
__cdecl
wined3d_shader_set_local_constants_float
(
struct
wined3d_shader
*
shader
,
UINT
start_idx
,
const
float
*
src_data
,
UINT
vector4f_count
);
HRESULT
__cdecl
wined3d_shader_resource_view_create
(
void
*
parent
,
const
struct
wined3d_parent_ops
*
parent_ops
,
struct
wined3d_shader_resource_view
**
view
);
ULONG
__cdecl
wined3d_shader_resource_view_decref
(
struct
wined3d_shader_resource_view
*
view
);
ULONG
__cdecl
wined3d_shader_resource_view_incref
(
struct
wined3d_shader_resource_view
*
view
);
void
__cdecl
wined3d_stateblock_apply
(
const
struct
wined3d_stateblock
*
stateblock
);
void
__cdecl
wined3d_stateblock_capture
(
struct
wined3d_stateblock
*
stateblock
);
HRESULT
__cdecl
wined3d_stateblock_create
(
struct
wined3d_device
*
device
,
...
...
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