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
4537fbca
Commit
4537fbca
authored
May 26, 2022
by
Piotr Caban
Committed by
Alexandre Julliard
Jun 07, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3dx10: Add D3DX10CreateAsyncTextureInfoProcessor implementation.
Signed-off-by:
Piotr Caban
<
piotr@codeweavers.com
>
parent
a2521a90
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
77 additions
and
13 deletions
+77
-13
async.c
dlls/d3dx10_43/async.c
+59
-2
dxhelpers.h
dlls/d3dx10_43/dxhelpers.h
+2
-0
texture.c
dlls/d3dx10_43/texture.c
+16
-11
No files found.
dlls/d3dx10_43/async.c
View file @
4537fbca
...
...
@@ -19,6 +19,7 @@
#include "d3d10_1.h"
#include "d3dx10.h"
#include "d3dcompiler.h"
#include "dxhelpers.h"
#include "wine/debug.h"
...
...
@@ -272,6 +273,48 @@ static const ID3DX10DataLoaderVtbl resourcedataloadervtbl =
resourcedataloader_Destroy
};
struct
texture_info_processor
{
ID3DX10DataProcessor
ID3DX10DataProcessor_iface
;
D3DX10_IMAGE_INFO
*
info
;
};
static
inline
struct
texture_info_processor
*
impl_from_ID3DX10DataProcessor
(
ID3DX10DataProcessor
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
struct
texture_info_processor
,
ID3DX10DataProcessor_iface
);
}
static
HRESULT
WINAPI
texture_info_processor_Process
(
ID3DX10DataProcessor
*
iface
,
void
*
data
,
SIZE_T
size
)
{
struct
texture_info_processor
*
processor
=
impl_from_ID3DX10DataProcessor
(
iface
);
TRACE
(
"iface %p, data %p, size %Iu.
\n
"
,
iface
,
data
,
size
);
return
get_image_info
(
data
,
size
,
processor
->
info
);
}
static
HRESULT
WINAPI
texture_info_processor_CreateDeviceObject
(
ID3DX10DataProcessor
*
iface
,
void
**
object
)
{
TRACE
(
"iface %p, object %p.
\n
"
,
iface
,
object
);
return
S_OK
;
}
static
HRESULT
WINAPI
texture_info_processor_Destroy
(
ID3DX10DataProcessor
*
iface
)
{
struct
texture_info_processor
*
processor
=
impl_from_ID3DX10DataProcessor
(
iface
);
TRACE
(
"iface %p.
\n
"
,
iface
);
free
(
processor
);
return
S_OK
;
}
static
ID3DX10DataProcessorVtbl
texture_info_processor_vtbl
=
{
texture_info_processor_Process
,
texture_info_processor_CreateDeviceObject
,
texture_info_processor_Destroy
};
HRESULT
WINAPI
D3DX10CompileFromMemory
(
const
char
*
data
,
SIZE_T
data_size
,
const
char
*
filename
,
const
D3D10_SHADER_MACRO
*
defines
,
ID3D10Include
*
include
,
const
char
*
entry_point
,
const
char
*
target
,
UINT
sflags
,
UINT
eflags
,
ID3DX10ThreadPump
*
pump
,
ID3D10Blob
**
shader
,
...
...
@@ -453,8 +496,22 @@ HRESULT WINAPI D3DX10CreateAsyncResourceLoaderW(HMODULE module, const WCHAR *res
HRESULT
WINAPI
D3DX10CreateAsyncTextureInfoProcessor
(
D3DX10_IMAGE_INFO
*
info
,
ID3DX10DataProcessor
**
processor
)
{
FIXME
(
"info %p, processor %p stub!
\n
"
,
info
,
processor
);
return
E_NOTIMPL
;
struct
texture_info_processor
*
object
;
TRACE
(
"info %p, processor %p.
\n
"
,
info
,
processor
);
if
(
!
processor
)
return
E_INVALIDARG
;
object
=
malloc
(
sizeof
(
*
object
));
if
(
!
object
)
return
E_OUTOFMEMORY
;
object
->
ID3DX10DataProcessor_iface
.
lpVtbl
=
&
texture_info_processor_vtbl
;
object
->
info
=
info
;
*
processor
=
&
object
->
ID3DX10DataProcessor_iface
;
return
S_OK
;
}
HRESULT
WINAPI
D3DX10PreprocessShaderFromMemory
(
const
char
*
data
,
SIZE_T
data_size
,
const
char
*
filename
,
...
...
dlls/d3dx10_43/dxhelpers.h
View file @
4537fbca
...
...
@@ -21,3 +21,5 @@ extern HRESULT load_resourceA(HMODULE module, const char *resource,
void
**
data
,
DWORD
*
size
)
DECLSPEC_HIDDEN
;
extern
HRESULT
load_resourceW
(
HMODULE
module
,
const
WCHAR
*
resource
,
void
**
data
,
DWORD
*
size
)
DECLSPEC_HIDDEN
;
extern
HRESULT
get_image_info
(
const
void
*
data
,
SIZE_T
size
,
D3DX10_IMAGE_INFO
*
img_info
)
DECLSPEC_HIDDEN
;
dlls/d3dx10_43/texture.c
View file @
4537fbca
...
...
@@ -382,8 +382,7 @@ HRESULT WINAPI D3DX10GetImageInfoFromResourceW(HMODULE module, const WCHAR *reso
return
D3DX10GetImageInfoFromMemory
(
buffer
,
size
,
pump
,
info
,
result
);
}
HRESULT
WINAPI
D3DX10GetImageInfoFromMemory
(
const
void
*
src_data
,
SIZE_T
src_data_size
,
ID3DX10ThreadPump
*
pump
,
D3DX10_IMAGE_INFO
*
img_info
,
HRESULT
*
hresult
)
HRESULT
get_image_info
(
const
void
*
data
,
SIZE_T
size
,
D3DX10_IMAGE_INFO
*
img_info
)
{
IWICBitmapFrameDecode
*
frame
=
NULL
;
IWICImagingFactory
*
factory
=
NULL
;
...
...
@@ -395,17 +394,9 @@ HRESULT WINAPI D3DX10GetImageInfoFromMemory(const void *src_data, SIZE_T src_dat
GUID
container_format
;
HRESULT
hr
;
TRACE
(
"src_data %p, src_data_size %Iu, pump %p, img_info %p, hresult %p.
\n
"
,
src_data
,
src_data_size
,
pump
,
img_info
,
hresult
);
if
(
!
src_data
||
!
src_data_size
||
!
img_info
)
return
E_FAIL
;
if
(
pump
)
FIXME
(
"Thread pump is not supported yet.
\n
"
);
WICCreateImagingFactory_Proxy
(
WINCODEC_SDK_VERSION
,
&
factory
);
IWICImagingFactory_CreateStream
(
factory
,
&
stream
);
hr
=
IWICStream_InitializeFromMemory
(
stream
,
(
BYTE
*
)
src_data
,
src_data_
size
);
hr
=
IWICStream_InitializeFromMemory
(
stream
,
(
BYTE
*
)
data
,
size
);
if
(
FAILED
(
hr
))
{
WARN
(
"Failed to initialize stream.
\n
"
);
...
...
@@ -486,6 +477,20 @@ end:
return
S_OK
;
}
HRESULT
WINAPI
D3DX10GetImageInfoFromMemory
(
const
void
*
src_data
,
SIZE_T
src_data_size
,
ID3DX10ThreadPump
*
pump
,
D3DX10_IMAGE_INFO
*
img_info
,
HRESULT
*
result
)
{
TRACE
(
"src_data %p, src_data_size %Iu, pump %p, img_info %p, hresult %p.
\n
"
,
src_data
,
src_data_size
,
pump
,
img_info
,
result
);
if
(
!
src_data
)
return
E_FAIL
;
if
(
pump
)
FIXME
(
"Thread pump is not supported yet.
\n
"
);
return
get_image_info
(
src_data
,
src_data_size
,
img_info
);
}
HRESULT
WINAPI
D3DX10CreateTextureFromFileA
(
ID3D10Device
*
device
,
const
char
*
src_file
,
D3DX10_IMAGE_LOAD_INFO
*
load_info
,
ID3DX10ThreadPump
*
pump
,
ID3D10Resource
**
texture
,
HRESULT
*
hresult
)
{
...
...
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