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
4b480f55
Commit
4b480f55
authored
Jan 15, 2015
by
Henri Verbeet
Committed by
Alexandre Julliard
Jan 15, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Introduce struct wined3d_sampler_desc.
parent
95c57c61
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
89 additions
and
8 deletions
+89
-8
state.c
dlls/d3d10core/state.c
+59
-1
sampler.c
dlls/wined3d/sampler.c
+8
-5
wined3d.spec
dlls/wined3d/wined3d.spec
+1
-1
wined3d_private.h
dlls/wined3d/wined3d_private.h
+1
-0
wined3d.h
include/wine/wined3d.h
+20
-1
No files found.
dlls/d3d10core/state.c
View file @
4b480f55
...
...
@@ -24,6 +24,12 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
d3d10core
);
#define D3D10_FILTER_MIP_MASK 0x01
#define D3D10_FILTER_MAG_MASK 0x04
#define D3D10_FILTER_MIN_MASK 0x10
#define D3D10_FILTER_ANISO_MASK 0x40
#define D3D10_FILTER_COMPARE_MASK 0x80
static
inline
struct
d3d10_blend_state
*
impl_from_ID3D10BlendState
(
ID3D10BlendState
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
d3d10_blend_state
,
ID3D10BlendState_iface
);
...
...
@@ -590,16 +596,68 @@ static const struct ID3D10SamplerStateVtbl d3d10_sampler_state_vtbl =
d3d10_sampler_state_GetDesc
,
};
static
enum
wined3d_texture_address
wined3d_texture_address_from_d3d10core
(
enum
D3D10_TEXTURE_ADDRESS_MODE
t
)
{
return
(
enum
wined3d_texture_address
)
t
;
}
static
enum
wined3d_texture_filter_type
wined3d_texture_filter_mip_from_d3d10core
(
enum
D3D10_FILTER
f
)
{
if
(
f
&
D3D10_FILTER_MIP_MASK
)
return
WINED3D_TEXF_LINEAR
;
return
WINED3D_TEXF_POINT
;
}
static
enum
wined3d_texture_filter_type
wined3d_texture_filter_mag_from_d3d10core
(
enum
D3D10_FILTER
f
)
{
if
(
f
&
D3D10_FILTER_MAG_MASK
)
return
WINED3D_TEXF_LINEAR
;
return
WINED3D_TEXF_POINT
;
}
static
enum
wined3d_texture_filter_type
wined3d_texture_filter_min_from_d3d10core
(
enum
D3D10_FILTER
f
)
{
if
(
f
&
D3D10_FILTER_MIN_MASK
)
return
WINED3D_TEXF_LINEAR
;
return
WINED3D_TEXF_POINT
;
}
static
BOOL
wined3d_texture_compare_from_d3d10core
(
enum
D3D10_FILTER
f
)
{
return
f
&
D3D10_FILTER_COMPARE_MASK
;
}
static
enum
wined3d_cmp_func
wined3d_cmp_func_from_d3d10core
(
D3D10_COMPARISON_FUNC
f
)
{
return
(
enum
wined3d_cmp_func
)
f
;
}
HRESULT
d3d10_sampler_state_init
(
struct
d3d10_sampler_state
*
state
,
struct
d3d10_device
*
device
,
const
D3D10_SAMPLER_DESC
*
desc
)
{
struct
wined3d_sampler_desc
wined3d_desc
;
HRESULT
hr
;
state
->
ID3D10SamplerState_iface
.
lpVtbl
=
&
d3d10_sampler_state_vtbl
;
state
->
refcount
=
1
;
state
->
desc
=
*
desc
;
if
(
FAILED
(
hr
=
wined3d_sampler_create
(
state
,
&
state
->
wined3d_sampler
)))
wined3d_desc
.
address_u
=
wined3d_texture_address_from_d3d10core
(
desc
->
AddressU
);
wined3d_desc
.
address_v
=
wined3d_texture_address_from_d3d10core
(
desc
->
AddressV
);
wined3d_desc
.
address_w
=
wined3d_texture_address_from_d3d10core
(
desc
->
AddressW
);
memcpy
(
wined3d_desc
.
border_color
,
desc
->
BorderColor
,
sizeof
(
wined3d_desc
.
border_color
));
wined3d_desc
.
mag_filter
=
wined3d_texture_filter_mag_from_d3d10core
(
desc
->
Filter
);
wined3d_desc
.
min_filter
=
wined3d_texture_filter_min_from_d3d10core
(
desc
->
Filter
);
wined3d_desc
.
mip_filter
=
wined3d_texture_filter_mip_from_d3d10core
(
desc
->
Filter
);
wined3d_desc
.
lod_bias
=
desc
->
MipLODBias
;
wined3d_desc
.
min_lod
=
desc
->
MinLOD
;
wined3d_desc
.
max_lod
=
desc
->
MaxLOD
;
wined3d_desc
.
max_anisotropy
=
desc
->
Filter
&
D3D10_FILTER_ANISO_MASK
?
desc
->
MaxAnisotropy
:
1
;
wined3d_desc
.
compare
=
wined3d_texture_compare_from_d3d10core
(
desc
->
Filter
);
wined3d_desc
.
comparison_func
=
wined3d_cmp_func_from_d3d10core
(
desc
->
ComparisonFunc
);
wined3d_desc
.
srgb_decode
=
FALSE
;
if
(
FAILED
(
hr
=
wined3d_sampler_create
(
&
wined3d_desc
,
state
,
&
state
->
wined3d_sampler
)))
{
WARN
(
"Failed to create wined3d sampler, hr %#x.
\n
"
,
hr
);
return
hr
;
...
...
dlls/wined3d/sampler.c
View file @
4b480f55
/*
* Copyright 2012 Henri Verbeet for CodeWeavers
* Copyright 2012
, 2015
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
...
...
@@ -52,22 +52,25 @@ void * CDECL wined3d_sampler_get_parent(const struct wined3d_sampler *sampler)
return
sampler
->
parent
;
}
static
void
wined3d_sampler_init
(
struct
wined3d_sampler
*
sampler
,
void
*
parent
)
static
void
wined3d_sampler_init
(
struct
wined3d_sampler
*
sampler
,
const
struct
wined3d_sampler_desc
*
desc
,
void
*
parent
)
{
sampler
->
refcount
=
1
;
sampler
->
parent
=
parent
;
sampler
->
desc
=
*
desc
;
}
HRESULT
CDECL
wined3d_sampler_create
(
void
*
parent
,
struct
wined3d_sampler
**
sampler
)
HRESULT
CDECL
wined3d_sampler_create
(
const
struct
wined3d_sampler_desc
*
desc
,
void
*
parent
,
struct
wined3d_sampler
**
sampler
)
{
struct
wined3d_sampler
*
object
;
TRACE
(
"
parent %p, sampler %p.
\n
"
,
parent
,
sampler
);
TRACE
(
"
desc %p, parent %p, sampler %p.
\n
"
,
desc
,
parent
,
sampler
);
if
(
!
(
object
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
wined3d_sampler_init
(
object
,
parent
);
wined3d_sampler_init
(
object
,
desc
,
parent
);
TRACE
(
"Created sampler %p.
\n
"
,
object
);
*
sampler
=
object
;
...
...
dlls/wined3d/wined3d.spec
View file @
4b480f55
...
...
@@ -194,7 +194,7 @@
@ cdecl wined3d_rendertarget_view_incref(ptr)
@ cdecl wined3d_rendertarget_view_set_parent(ptr ptr)
@ cdecl wined3d_sampler_create(ptr ptr)
@ cdecl wined3d_sampler_create(ptr ptr
ptr
)
@ cdecl wined3d_sampler_decref(ptr)
@ cdecl wined3d_sampler_get_parent(ptr)
@ cdecl wined3d_sampler_incref(ptr)
...
...
dlls/wined3d/wined3d_private.h
View file @
4b480f55
...
...
@@ -2409,6 +2409,7 @@ struct wined3d_sampler
{
LONG
refcount
;
void
*
parent
;
struct
wined3d_sampler_desc
desc
;
};
struct
wined3d_vertex_declaration_element
...
...
include/wine/wined3d.h
View file @
4b480f55
...
...
@@ -1976,6 +1976,24 @@ struct wined3d_rendertarget_view_desc
}
u
;
};
struct
wined3d_sampler_desc
{
enum
wined3d_texture_address
address_u
;
enum
wined3d_texture_address
address_v
;
enum
wined3d_texture_address
address_w
;
float
border_color
[
4
];
enum
wined3d_texture_filter_type
mag_filter
;
enum
wined3d_texture_filter_type
min_filter
;
enum
wined3d_texture_filter_type
mip_filter
;
float
lod_bias
;
float
min_lod
;
float
max_lod
;
unsigned
int
max_anisotropy
;
BOOL
compare
;
enum
wined3d_cmp_func
comparison_func
;
BOOL
srgb_decode
;
};
struct
wined3d_shader_signature_element
{
const
char
*
semantic_name
;
...
...
@@ -2434,7 +2452,8 @@ void * __cdecl wined3d_rendertarget_view_get_sub_resource_parent(const struct wi
ULONG
__cdecl
wined3d_rendertarget_view_incref
(
struct
wined3d_rendertarget_view
*
view
);
void
__cdecl
wined3d_rendertarget_view_set_parent
(
struct
wined3d_rendertarget_view
*
view
,
void
*
parent
);
HRESULT
__cdecl
wined3d_sampler_create
(
void
*
parent
,
struct
wined3d_sampler
**
sampler
);
HRESULT
__cdecl
wined3d_sampler_create
(
const
struct
wined3d_sampler_desc
*
desc
,
void
*
parent
,
struct
wined3d_sampler
**
sampler
);
ULONG
__cdecl
wined3d_sampler_decref
(
struct
wined3d_sampler
*
sampler
);
void
*
__cdecl
wined3d_sampler_get_parent
(
const
struct
wined3d_sampler
*
sampler
);
ULONG
__cdecl
wined3d_sampler_incref
(
struct
wined3d_sampler
*
sampler
);
...
...
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