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
8cefc47d
Commit
8cefc47d
authored
Feb 19, 2009
by
Henri Verbeet
Committed by
Alexandre Julliard
Feb 20, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Add DXGI formats to WINED3DFORMAT.
parent
61a9efc4
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
619 additions
and
427 deletions
+619
-427
device.c
dlls/d3d8/device.c
+18
-18
device.c
dlls/d3d9/device.c
+36
-36
ddraw.c
dlls/ddraw/ddraw.c
+4
-4
device.c
dlls/ddraw/device.c
+8
-19
direct3d.c
dlls/ddraw/direct3d.c
+4
-9
utils.c
dlls/ddraw/utils.c
+7
-7
device.c
dlls/wined3d/device.c
+6
-6
directx.c
dlls/wined3d/directx.c
+39
-39
surface.c
dlls/wined3d/surface.c
+5
-5
surface_base.c
dlls/wined3d/surface_base.c
+5
-5
utils.c
dlls/wined3d/utils.c
+363
-227
wined3d.idl
include/wine/wined3d.idl
+124
-52
No files found.
dlls/d3d8/device.c
View file @
8cefc47d
...
...
@@ -54,21 +54,21 @@ D3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format)
case
WINED3DFMT_A1R5G5B5
:
return
D3DFMT_A1R5G5B5
;
case
WINED3DFMT_A4R4G4B4
:
return
D3DFMT_A4R4G4B4
;
case
WINED3DFMT_R3G3B2
:
return
D3DFMT_R3G3B2
;
case
WINED3DFMT_A8
:
return
D3DFMT_A8
;
case
WINED3DFMT_A8
_UNORM
:
return
D3DFMT_A8
;
case
WINED3DFMT_A8R3G3B2
:
return
D3DFMT_A8R3G3B2
;
case
WINED3DFMT_X4R4G4B4
:
return
D3DFMT_X4R4G4B4
;
case
WINED3DFMT_
A2B10G10R10
:
return
D3DFMT_A2B10G10R10
;
case
WINED3DFMT_
G16R16
:
return
D3DFMT_G16R16
;
case
WINED3DFMT_
R10G10B10A2_UNORM
:
return
D3DFMT_A2B10G10R10
;
case
WINED3DFMT_
R16G16_UNORM
:
return
D3DFMT_G16R16
;
case
WINED3DFMT_A8P8
:
return
D3DFMT_A8P8
;
case
WINED3DFMT_P8
:
return
D3DFMT_P8
;
case
WINED3DFMT_L8
:
return
D3DFMT_L8
;
case
WINED3DFMT_A8L8
:
return
D3DFMT_A8L8
;
case
WINED3DFMT_A4L4
:
return
D3DFMT_A4L4
;
case
WINED3DFMT_
V8U8
:
return
D3DFMT_V8U8
;
case
WINED3DFMT_
R8G8_SNORM
:
return
D3DFMT_V8U8
;
case
WINED3DFMT_L6V5U5
:
return
D3DFMT_L6V5U5
;
case
WINED3DFMT_X8L8V8U8
:
return
D3DFMT_X8L8V8U8
;
case
WINED3DFMT_
Q8W8V8U8
:
return
D3DFMT_Q8W8V8U8
;
case
WINED3DFMT_
V16U16
:
return
D3DFMT_V16U16
;
case
WINED3DFMT_
R8G8B8A8_SNORM
:
return
D3DFMT_Q8W8V8U8
;
case
WINED3DFMT_
R16G16_SNORM
:
return
D3DFMT_V16U16
;
case
WINED3DFMT_A2W10V10U10
:
return
D3DFMT_A2W10V10U10
;
case
WINED3DFMT_D16_LOCKABLE
:
return
D3DFMT_D16_LOCKABLE
;
case
WINED3DFMT_D32
:
return
D3DFMT_D32
;
...
...
@@ -76,10 +76,10 @@ D3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format)
case
WINED3DFMT_D24S8
:
return
D3DFMT_D24S8
;
case
WINED3DFMT_D24X8
:
return
D3DFMT_D24X8
;
case
WINED3DFMT_D24X4S4
:
return
D3DFMT_D24X4S4
;
case
WINED3DFMT_D16
:
return
D3DFMT_D16
;
case
WINED3DFMT_D16
_UNORM
:
return
D3DFMT_D16
;
case
WINED3DFMT_VERTEXDATA
:
return
D3DFMT_VERTEXDATA
;
case
WINED3DFMT_
INDEX16
:
return
D3DFMT_INDEX16
;
case
WINED3DFMT_
INDEX32
:
return
D3DFMT_INDEX32
;
case
WINED3DFMT_
R16_UINT
:
return
D3DFMT_INDEX16
;
case
WINED3DFMT_
R32_UINT
:
return
D3DFMT_INDEX32
;
default:
FIXME
(
"Unhandled WINED3DFORMAT %#x
\n
"
,
format
);
return
D3DFMT_UNKNOWN
;
...
...
@@ -104,21 +104,21 @@ WINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format)
case
D3DFMT_A1R5G5B5
:
return
WINED3DFMT_A1R5G5B5
;
case
D3DFMT_A4R4G4B4
:
return
WINED3DFMT_A4R4G4B4
;
case
D3DFMT_R3G3B2
:
return
WINED3DFMT_R3G3B2
;
case
D3DFMT_A8
:
return
WINED3DFMT_A8
;
case
D3DFMT_A8
:
return
WINED3DFMT_A8
_UNORM
;
case
D3DFMT_A8R3G3B2
:
return
WINED3DFMT_A8R3G3B2
;
case
D3DFMT_X4R4G4B4
:
return
WINED3DFMT_X4R4G4B4
;
case
D3DFMT_A2B10G10R10
:
return
WINED3DFMT_
A2B10G10R10
;
case
D3DFMT_G16R16
:
return
WINED3DFMT_
G16R16
;
case
D3DFMT_A2B10G10R10
:
return
WINED3DFMT_
R10G10B10A2_UNORM
;
case
D3DFMT_G16R16
:
return
WINED3DFMT_
R16G16_UNORM
;
case
D3DFMT_A8P8
:
return
WINED3DFMT_A8P8
;
case
D3DFMT_P8
:
return
WINED3DFMT_P8
;
case
D3DFMT_L8
:
return
WINED3DFMT_L8
;
case
D3DFMT_A8L8
:
return
WINED3DFMT_A8L8
;
case
D3DFMT_A4L4
:
return
WINED3DFMT_A4L4
;
case
D3DFMT_V8U8
:
return
WINED3DFMT_
V8U8
;
case
D3DFMT_V8U8
:
return
WINED3DFMT_
R8G8_SNORM
;
case
D3DFMT_L6V5U5
:
return
WINED3DFMT_L6V5U5
;
case
D3DFMT_X8L8V8U8
:
return
WINED3DFMT_X8L8V8U8
;
case
D3DFMT_Q8W8V8U8
:
return
WINED3DFMT_
Q8W8V8U8
;
case
D3DFMT_V16U16
:
return
WINED3DFMT_
V16U16
;
case
D3DFMT_Q8W8V8U8
:
return
WINED3DFMT_
R8G8B8A8_SNORM
;
case
D3DFMT_V16U16
:
return
WINED3DFMT_
R16G16_SNORM
;
case
D3DFMT_A2W10V10U10
:
return
WINED3DFMT_A2W10V10U10
;
case
D3DFMT_D16_LOCKABLE
:
return
WINED3DFMT_D16_LOCKABLE
;
case
D3DFMT_D32
:
return
WINED3DFMT_D32
;
...
...
@@ -126,10 +126,10 @@ WINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format)
case
D3DFMT_D24S8
:
return
WINED3DFMT_D24S8
;
case
D3DFMT_D24X8
:
return
WINED3DFMT_D24X8
;
case
D3DFMT_D24X4S4
:
return
WINED3DFMT_D24X4S4
;
case
D3DFMT_D16
:
return
WINED3DFMT_D16
;
case
D3DFMT_D16
:
return
WINED3DFMT_D16
_UNORM
;
case
D3DFMT_VERTEXDATA
:
return
WINED3DFMT_VERTEXDATA
;
case
D3DFMT_INDEX16
:
return
WINED3DFMT_
INDEX16
;
case
D3DFMT_INDEX32
:
return
WINED3DFMT_
INDEX32
;
case
D3DFMT_INDEX16
:
return
WINED3DFMT_
R16_UINT
;
case
D3DFMT_INDEX32
:
return
WINED3DFMT_
R32_UINT
;
default:
FIXME
(
"Unhandled D3DFORMAT %#x
\n
"
,
format
);
return
WINED3DFMT_UNKNOWN
;
...
...
dlls/d3d9/device.c
View file @
8cefc47d
...
...
@@ -43,25 +43,25 @@ D3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format)
case
WINED3DFMT_A1R5G5B5
:
return
D3DFMT_A1R5G5B5
;
case
WINED3DFMT_A4R4G4B4
:
return
D3DFMT_A4R4G4B4
;
case
WINED3DFMT_R3G3B2
:
return
D3DFMT_R3G3B2
;
case
WINED3DFMT_A8
:
return
D3DFMT_A8
;
case
WINED3DFMT_A8
_UNORM
:
return
D3DFMT_A8
;
case
WINED3DFMT_A8R3G3B2
:
return
D3DFMT_A8R3G3B2
;
case
WINED3DFMT_X4R4G4B4
:
return
D3DFMT_X4R4G4B4
;
case
WINED3DFMT_
A2B10G10R10
:
return
D3DFMT_A2B10G10R10
;
case
WINED3DFMT_
A8B8G8R8
:
return
D3DFMT_A8B8G8R8
;
case
WINED3DFMT_
R10G10B10A2_UNORM
:
return
D3DFMT_A2B10G10R10
;
case
WINED3DFMT_
R8G8B8A8_UNORM
:
return
D3DFMT_A8B8G8R8
;
case
WINED3DFMT_X8B8G8R8
:
return
D3DFMT_X8B8G8R8
;
case
WINED3DFMT_
G16R16
:
return
D3DFMT_G16R16
;
case
WINED3DFMT_
R16G16_UNORM
:
return
D3DFMT_G16R16
;
case
WINED3DFMT_A2R10G10B10
:
return
D3DFMT_A2R10G10B10
;
case
WINED3DFMT_
A16B16G16R16
:
return
D3DFMT_A16B16G16R16
;
case
WINED3DFMT_
R16G16B16A16_UNORM
:
return
D3DFMT_A16B16G16R16
;
case
WINED3DFMT_A8P8
:
return
D3DFMT_A8P8
;
case
WINED3DFMT_P8
:
return
D3DFMT_P8
;
case
WINED3DFMT_L8
:
return
D3DFMT_L8
;
case
WINED3DFMT_A8L8
:
return
D3DFMT_A8L8
;
case
WINED3DFMT_A4L4
:
return
D3DFMT_A4L4
;
case
WINED3DFMT_
V8U8
:
return
D3DFMT_V8U8
;
case
WINED3DFMT_
R8G8_SNORM
:
return
D3DFMT_V8U8
;
case
WINED3DFMT_L6V5U5
:
return
D3DFMT_L6V5U5
;
case
WINED3DFMT_X8L8V8U8
:
return
D3DFMT_X8L8V8U8
;
case
WINED3DFMT_
Q8W8V8U8
:
return
D3DFMT_Q8W8V8U8
;
case
WINED3DFMT_
V16U16
:
return
D3DFMT_V16U16
;
case
WINED3DFMT_
R8G8B8A8_SNORM
:
return
D3DFMT_Q8W8V8U8
;
case
WINED3DFMT_
R16G16_SNORM
:
return
D3DFMT_V16U16
;
case
WINED3DFMT_A2W10V10U10
:
return
D3DFMT_A2W10V10U10
;
case
WINED3DFMT_D16_LOCKABLE
:
return
D3DFMT_D16_LOCKABLE
;
case
WINED3DFMT_D32
:
return
D3DFMT_D32
;
...
...
@@ -69,20 +69,20 @@ D3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format)
case
WINED3DFMT_D24S8
:
return
D3DFMT_D24S8
;
case
WINED3DFMT_D24X8
:
return
D3DFMT_D24X8
;
case
WINED3DFMT_D24X4S4
:
return
D3DFMT_D24X4S4
;
case
WINED3DFMT_D16
:
return
D3DFMT_D16
;
case
WINED3DFMT_D16
_UNORM
:
return
D3DFMT_D16
;
case
WINED3DFMT_L16
:
return
D3DFMT_L16
;
case
WINED3DFMT_D32F_LOCKABLE
:
return
D3DFMT_D32F_LOCKABLE
;
case
WINED3DFMT_D24FS8
:
return
D3DFMT_D24FS8
;
case
WINED3DFMT_VERTEXDATA
:
return
D3DFMT_VERTEXDATA
;
case
WINED3DFMT_
INDEX16
:
return
D3DFMT_INDEX16
;
case
WINED3DFMT_
INDEX32
:
return
D3DFMT_INDEX32
;
case
WINED3DFMT_
Q16W16V16U16
:
return
D3DFMT_Q16W16V16U16
;
case
WINED3DFMT_R16
F
:
return
D3DFMT_R16F
;
case
WINED3DFMT_
G16R16F
:
return
D3DFMT_G16R16F
;
case
WINED3DFMT_
A16B16G16R16F
:
return
D3DFMT_A16B16G16R16F
;
case
WINED3DFMT_R32
F
:
return
D3DFMT_R32F
;
case
WINED3DFMT_
G32R32F
:
return
D3DFMT_G32R32F
;
case
WINED3DFMT_
A32B32G32R32F
:
return
D3DFMT_A32B32G32R32F
;
case
WINED3DFMT_
R16_UINT
:
return
D3DFMT_INDEX16
;
case
WINED3DFMT_
R32_UINT
:
return
D3DFMT_INDEX32
;
case
WINED3DFMT_
R16G16B16A16_SNORM
:
return
D3DFMT_Q16W16V16U16
;
case
WINED3DFMT_R16
_FLOAT
:
return
D3DFMT_R16F
;
case
WINED3DFMT_
R16G16_FLOAT
:
return
D3DFMT_G16R16F
;
case
WINED3DFMT_
R16G16B16A16_FLOAT
:
return
D3DFMT_A16B16G16R16F
;
case
WINED3DFMT_R32
_FLOAT
:
return
D3DFMT_R32F
;
case
WINED3DFMT_
R32G32_FLOAT
:
return
D3DFMT_G32R32F
;
case
WINED3DFMT_
R32G32B32A32_FLOAT
:
return
D3DFMT_A32B32G32R32F
;
case
WINED3DFMT_CxV8U8
:
return
D3DFMT_CxV8U8
;
default:
FIXME
(
"Unhandled WINED3DFORMAT %#x
\n
"
,
format
);
...
...
@@ -108,25 +108,25 @@ WINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format)
case
D3DFMT_A1R5G5B5
:
return
WINED3DFMT_A1R5G5B5
;
case
D3DFMT_A4R4G4B4
:
return
WINED3DFMT_A4R4G4B4
;
case
D3DFMT_R3G3B2
:
return
WINED3DFMT_R3G3B2
;
case
D3DFMT_A8
:
return
WINED3DFMT_A8
;
case
D3DFMT_A8
:
return
WINED3DFMT_A8
_UNORM
;
case
D3DFMT_A8R3G3B2
:
return
WINED3DFMT_A8R3G3B2
;
case
D3DFMT_X4R4G4B4
:
return
WINED3DFMT_X4R4G4B4
;
case
D3DFMT_A2B10G10R10
:
return
WINED3DFMT_
A2B10G10R10
;
case
D3DFMT_A8B8G8R8
:
return
WINED3DFMT_
A8B8G8R8
;
case
D3DFMT_A2B10G10R10
:
return
WINED3DFMT_
R10G10B10A2_UNORM
;
case
D3DFMT_A8B8G8R8
:
return
WINED3DFMT_
R8G8B8A8_UNORM
;
case
D3DFMT_X8B8G8R8
:
return
WINED3DFMT_X8B8G8R8
;
case
D3DFMT_G16R16
:
return
WINED3DFMT_
G16R16
;
case
D3DFMT_G16R16
:
return
WINED3DFMT_
R16G16_UNORM
;
case
D3DFMT_A2R10G10B10
:
return
WINED3DFMT_A2R10G10B10
;
case
D3DFMT_A16B16G16R16
:
return
WINED3DFMT_
A16B16G16R16
;
case
D3DFMT_A16B16G16R16
:
return
WINED3DFMT_
R16G16B16A16_UNORM
;
case
D3DFMT_A8P8
:
return
WINED3DFMT_A8P8
;
case
D3DFMT_P8
:
return
WINED3DFMT_P8
;
case
D3DFMT_L8
:
return
WINED3DFMT_L8
;
case
D3DFMT_A8L8
:
return
WINED3DFMT_A8L8
;
case
D3DFMT_A4L4
:
return
WINED3DFMT_A4L4
;
case
D3DFMT_V8U8
:
return
WINED3DFMT_
V8U8
;
case
D3DFMT_V8U8
:
return
WINED3DFMT_
R8G8_SNORM
;
case
D3DFMT_L6V5U5
:
return
WINED3DFMT_L6V5U5
;
case
D3DFMT_X8L8V8U8
:
return
WINED3DFMT_X8L8V8U8
;
case
D3DFMT_Q8W8V8U8
:
return
WINED3DFMT_
Q8W8V8U8
;
case
D3DFMT_V16U16
:
return
WINED3DFMT_
V16U16
;
case
D3DFMT_Q8W8V8U8
:
return
WINED3DFMT_
R8G8B8A8_SNORM
;
case
D3DFMT_V16U16
:
return
WINED3DFMT_
R16G16_SNORM
;
case
D3DFMT_A2W10V10U10
:
return
WINED3DFMT_A2W10V10U10
;
case
D3DFMT_D16_LOCKABLE
:
return
WINED3DFMT_D16_LOCKABLE
;
case
D3DFMT_D32
:
return
WINED3DFMT_D32
;
...
...
@@ -134,20 +134,20 @@ WINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format)
case
D3DFMT_D24S8
:
return
WINED3DFMT_D24S8
;
case
D3DFMT_D24X8
:
return
WINED3DFMT_D24X8
;
case
D3DFMT_D24X4S4
:
return
WINED3DFMT_D24X4S4
;
case
D3DFMT_D16
:
return
WINED3DFMT_D16
;
case
D3DFMT_D16
:
return
WINED3DFMT_D16
_UNORM
;
case
D3DFMT_L16
:
return
WINED3DFMT_L16
;
case
D3DFMT_D32F_LOCKABLE
:
return
WINED3DFMT_D32F_LOCKABLE
;
case
D3DFMT_D24FS8
:
return
WINED3DFMT_D24FS8
;
case
D3DFMT_VERTEXDATA
:
return
WINED3DFMT_VERTEXDATA
;
case
D3DFMT_INDEX16
:
return
WINED3DFMT_
INDEX16
;
case
D3DFMT_INDEX32
:
return
WINED3DFMT_
INDEX32
;
case
D3DFMT_Q16W16V16U16
:
return
WINED3DFMT_
Q16W16V16U16
;
case
D3DFMT_R16F
:
return
WINED3DFMT_R16
F
;
case
D3DFMT_G16R16F
:
return
WINED3DFMT_
G16R16F
;
case
D3DFMT_A16B16G16R16F
:
return
WINED3DFMT_
A16B16G16R16F
;
case
D3DFMT_R32F
:
return
WINED3DFMT_R32
F
;
case
D3DFMT_G32R32F
:
return
WINED3DFMT_
G32R32F
;
case
D3DFMT_A32B32G32R32F
:
return
WINED3DFMT_
A32B32G32R32F
;
case
D3DFMT_INDEX16
:
return
WINED3DFMT_
R16_UINT
;
case
D3DFMT_INDEX32
:
return
WINED3DFMT_
R32_UINT
;
case
D3DFMT_Q16W16V16U16
:
return
WINED3DFMT_
R16G16B16A16_SNORM
;
case
D3DFMT_R16F
:
return
WINED3DFMT_R16
_FLOAT
;
case
D3DFMT_G16R16F
:
return
WINED3DFMT_
R16G16_FLOAT
;
case
D3DFMT_A16B16G16R16F
:
return
WINED3DFMT_
R16G16B16A16_FLOAT
;
case
D3DFMT_R32F
:
return
WINED3DFMT_R32
_FLOAT
;
case
D3DFMT_G32R32F
:
return
WINED3DFMT_
R32G32_FLOAT
;
case
D3DFMT_A32B32G32R32F
:
return
WINED3DFMT_
R32G32B32A32_FLOAT
;
case
D3DFMT_CxV8U8
:
return
WINED3DFMT_CxV8U8
;
default:
FIXME
(
"Unhandled D3DFORMAT %#x
\n
"
,
format
);
...
...
dlls/ddraw/ddraw.c
View file @
8cefc47d
...
...
@@ -1339,8 +1339,8 @@ IDirectDrawImpl_EnumDisplayModes(IDirectDraw7 *iface,
WINED3DFMT_R3G3B2
,
WINED3DFMT_A8R3G3B2
,
WINED3DFMT_X4R4G4B4
,
WINED3DFMT_
A2B10G10R10
,
WINED3DFMT_
A8B8G8R8
,
WINED3DFMT_
R10G10B10A2_UNORM
,
WINED3DFMT_
R8G8B8A8_UNORM
,
WINED3DFMT_X8B8G8R8
,
WINED3DFMT_A2R10G10B10
,
WINED3DFMT_A8P8
,
...
...
@@ -2484,7 +2484,7 @@ IDirectDrawImpl_CreateSurface(IDirectDraw7 *iface,
PixelFormat_WineD3DtoDD
(
&
desc2
.
u4
.
ddpfPixelFormat
,
WINED3DFMT_D15S1
);
break
;
case
16
:
PixelFormat_WineD3DtoDD
(
&
desc2
.
u4
.
ddpfPixelFormat
,
WINED3DFMT_D16
);
PixelFormat_WineD3DtoDD
(
&
desc2
.
u4
.
ddpfPixelFormat
,
WINED3DFMT_D16
_UNORM
);
break
;
case
24
:
PixelFormat_WineD3DtoDD
(
&
desc2
.
u4
.
ddpfPixelFormat
,
WINED3DFMT_D24X8
);
...
...
@@ -3045,7 +3045,7 @@ IDirectDrawImpl_AttachD3DDevice(IDirectDrawImpl *This,
localParameters
.
hDeviceWindow
=
window
;
localParameters
.
Windowed
=
!
(
This
->
cooperative_level
&
DDSCL_FULLSCREEN
);
localParameters
.
EnableAutoDepthStencil
=
TRUE
;
localParameters
.
AutoDepthStencilFormat
=
WINED3DFMT_D16
;
localParameters
.
AutoDepthStencilFormat
=
WINED3DFMT_D16
_UNORM
;
localParameters
.
Flags
=
0
;
localParameters
.
FullScreen_RefreshRateInHz
=
WINED3DPRESENT_RATE_DEFAULT
;
/* Default rate: It's already set */
localParameters
.
PresentationInterval
=
WINED3DPRESENT_INTERVAL_DEFAULT
;
...
...
dlls/ddraw/device.c
View file @
8cefc47d
...
...
@@ -1166,11 +1166,11 @@ IDirect3DDeviceImpl_7_EnumTextureFormats(IDirect3DDevice7 *iface,
};
WINED3DFORMAT
BumpFormatList
[]
=
{
WINED3DFMT_
V8U8
,
WINED3DFMT_
R8G8_SNORM
,
WINED3DFMT_L6V5U5
,
WINED3DFMT_X8L8V8U8
,
WINED3DFMT_
Q8W8V8U8
,
WINED3DFMT_
V16U16
,
WINED3DFMT_
R8G8B8A8_SNORM
,
WINED3DFMT_
R16G16_SNORM
,
WINED3DFMT_W11V11U10
,
WINED3DFMT_A2W10V10U10
};
...
...
@@ -3673,15 +3673,9 @@ IDirect3DDeviceImpl_7_DrawIndexedPrimitive(IDirect3DDevice7 *iface,
return
hr
;
}
hr
=
IWineD3DDevice_DrawIndexedPrimitiveUP
(
This
->
wineD3DDevice
,
PrimitiveType
,
0
/* MinVertexIndex */
,
VertexCount
/* UINT NumVertexIndex */
,
PrimitiveCount
,
Indices
,
WINED3DFMT_INDEX16
,
Vertices
,
get_flexible_vertex_size
(
VertexType
));
hr
=
IWineD3DDevice_DrawIndexedPrimitiveUP
(
This
->
wineD3DDevice
,
PrimitiveType
,
0
/* MinVertexIndex */
,
VertexCount
/* UINT NumVertexIndex */
,
PrimitiveCount
,
Indices
,
WINED3DFMT_R16_UINT
,
Vertices
,
get_flexible_vertex_size
(
VertexType
));
LeaveCriticalSection
(
&
ddraw_cs
);
return
hr
;
}
...
...
@@ -4152,13 +4146,8 @@ IDirect3DDeviceImpl_7_DrawIndexedPrimitiveStrided(IDirect3DDevice7 *iface,
/* WineD3D doesn't need the FVF here */
EnterCriticalSection
(
&
ddraw_cs
);
hr
=
IWineD3DDevice_DrawIndexedPrimitiveStrided
(
This
->
wineD3DDevice
,
PrimitiveType
,
PrimitiveCount
,
&
WineD3DStrided
,
VertexCount
,
Indices
,
WINED3DFMT_INDEX16
);
hr
=
IWineD3DDevice_DrawIndexedPrimitiveStrided
(
This
->
wineD3DDevice
,
PrimitiveType
,
PrimitiveCount
,
&
WineD3DStrided
,
VertexCount
,
Indices
,
WINED3DFMT_R16_UINT
);
LeaveCriticalSection
(
&
ddraw_cs
);
return
hr
;
}
...
...
dlls/ddraw/direct3d.c
View file @
8cefc47d
...
...
@@ -823,14 +823,9 @@ IDirect3DImpl_7_CreateDevice(IDirect3D7 *iface,
* Ideally, a IWineD3DIndexBuffer::SetData method could be created, which
* takes the pointer and avoids the memcpy
*/
hr
=
IWineD3DDevice_CreateIndexBuffer
(
This
->
wineD3DDevice
,
0x40000
,
/* Length. Don't know how long it should be */
WINED3DUSAGE_DYNAMIC
,
/* Usage */
WINED3DFMT_INDEX16
,
/* Format. D3D7 uses WORDS */
WINED3DPOOL_DEFAULT
,
&
object
->
indexbuffer
,
0
/* Handle */
,
(
IUnknown
*
)
IndexBufferParent
);
hr
=
IWineD3DDevice_CreateIndexBuffer
(
This
->
wineD3DDevice
,
0x40000
/* Length. Don't know how long it should be */
,
WINED3DUSAGE_DYNAMIC
/* Usage */
,
WINED3DFMT_R16_UINT
/* Format. D3D7 uses WORDS */
,
WINED3DPOOL_DEFAULT
,
&
object
->
indexbuffer
,
0
/* Handle */
,
(
IUnknown
*
)
IndexBufferParent
);
if
(
FAILED
(
hr
))
{
...
...
@@ -1120,7 +1115,7 @@ IDirect3DImpl_7_EnumZBufferFormats(IDirect3D7 *iface,
* 16-bit depth formats to be listed before the 24 and 32 ones. */
WINED3DFORMAT
FormatList
[]
=
{
WINED3DFMT_D15S1
,
WINED3DFMT_D16
,
WINED3DFMT_D16
_UNORM
,
WINED3DFMT_D24X8
,
WINED3DFMT_D24X4S4
,
WINED3DFMT_D24S8
,
...
...
dlls/ddraw/utils.c
View file @
8cefc47d
...
...
@@ -154,7 +154,7 @@ PixelFormat_WineD3DtoDD(DDPIXELFORMAT *DDPixelFormat,
DDPixelFormat
->
u4
.
dwBBitMask
=
0x00
;
break
;
case
WINED3DFMT_A8
:
case
WINED3DFMT_A8
_UNORM
:
DDPixelFormat
->
dwFlags
=
DDPF_ALPHA
;
DDPixelFormat
->
dwFourCC
=
0
;
DDPixelFormat
->
u1
.
dwAlphaBitDepth
=
8
;
...
...
@@ -186,7 +186,7 @@ PixelFormat_WineD3DtoDD(DDPIXELFORMAT *DDPixelFormat,
/* How are Z buffer bit depth and Stencil buffer bit depth related?
*/
case
WINED3DFMT_D16
:
case
WINED3DFMT_D16
_UNORM
:
DDPixelFormat
->
dwFlags
=
DDPF_ZBUFFER
;
DDPixelFormat
->
dwFourCC
=
0
;
DDPixelFormat
->
u1
.
dwZBufferBitDepth
=
16
;
...
...
@@ -305,7 +305,7 @@ PixelFormat_WineD3DtoDD(DDPIXELFORMAT *DDPixelFormat,
break
;
/* Bump mapping */
case
WINED3DFMT_
V8U8
:
case
WINED3DFMT_
R8G8_SNORM
:
DDPixelFormat
->
dwFlags
=
DDPF_BUMPDUDV
;
DDPixelFormat
->
dwFourCC
=
0
;
DDPixelFormat
->
u1
.
dwBumpBitCount
=
16
;
...
...
@@ -447,7 +447,7 @@ PixelFormat_DD2WineD3D(const DDPIXELFORMAT *DDPixelFormat)
case
4
:
ERR
(
"Unsupported Alpha-Only bit depth 0x%x
\n
"
,
DDPixelFormat
->
u1
.
dwAlphaBitDepth
);
case
8
:
return
WINED3DFMT_A8
;
return
WINED3DFMT_A8
_UNORM
;
default:
ERR
(
"Invalid AlphaBitDepth in Alpha-Only Pixelformat
\n
"
);
...
...
@@ -538,10 +538,10 @@ PixelFormat_DD2WineD3D(const DDPIXELFORMAT *DDPixelFormat)
{
case
8
:
ERR
(
"8 Bit Z buffers are not supported. Trying a 16 Bit one
\n
"
);
return
WINED3DFMT_D16
;
return
WINED3DFMT_D16
_UNORM
;
case
16
:
return
WINED3DFMT_D16
;
return
WINED3DFMT_D16
_UNORM
;
case
24
:
FIXME
(
"24 Bit depth buffer, treating like a 32 bit one
\n
"
);
...
...
@@ -611,7 +611,7 @@ PixelFormat_DD2WineD3D(const DDPIXELFORMAT *DDPixelFormat)
(
DDPixelFormat
->
u3
.
dwBumpDvBitMask
==
0x0000ff00
)
&&
(
DDPixelFormat
->
u4
.
dwBumpLuminanceBitMask
==
0x00000000
)
)
{
return
WINED3DFMT_
V8U8
;
return
WINED3DFMT_
R8G8_SNORM
;
}
else
if
(
(
DDPixelFormat
->
u1
.
dwBumpBitCount
==
16
)
&&
(
DDPixelFormat
->
u2
.
dwBumpDuBitMask
==
0x0000001f
)
&&
...
...
dlls/wined3d/device.c
View file @
8cefc47d
...
...
@@ -5303,7 +5303,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawIndexedPrimitive(IWineD3DDevice *
minIndex
,
NumVertices
,
startIndex
,
primCount
);
IWineD3DIndexBuffer_GetDesc
(
pIB
,
&
IdxBufDsc
);
if
(
IdxBufDsc
.
Format
==
WINED3DFMT_
INDEX16
)
{
if
(
IdxBufDsc
.
Format
==
WINED3DFMT_
R16_UINT
)
{
idxStride
=
2
;
}
else
{
idxStride
=
4
;
...
...
@@ -5380,7 +5380,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawIndexedPrimitiveUP(IWineD3DDevice *
return
WINED3DERR_INVALIDCALL
;
}
if
(
IndexDataFormat
==
WINED3DFMT_
INDEX16
)
{
if
(
IndexDataFormat
==
WINED3DFMT_
R16_UINT
)
{
idxStride
=
2
;
}
else
{
idxStride
=
4
;
...
...
@@ -5443,7 +5443,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawIndexedPrimitiveStrided(IWineD3DDev
WINED3DFORMAT
IndexDataFormat
)
{
IWineD3DDeviceImpl
*
This
=
(
IWineD3DDeviceImpl
*
)
iface
;
DWORD
idxSize
=
(
IndexDataFormat
==
WINED3DFMT_
INDEX32
?
4
:
2
);
DWORD
idxSize
=
(
IndexDataFormat
==
WINED3DFMT_
R32_UINT
?
4
:
2
);
/* Mark the state dirty until we have nicer tracking
* its fine to change baseVertexIndex because that call is only called by ddraw which does not need
...
...
@@ -6263,7 +6263,7 @@ static inline DWORD argb_to_fmt(DWORD color, WINED3DFORMAT destfmt) {
TRACE
(
"Returning %08x
\n
"
,
ret
);
return
ret
;
case
WINED3DFMT_A8
:
case
WINED3DFMT_A8
_UNORM
:
TRACE
(
"Returning %08x
\n
"
,
a
);
return
a
;
...
...
@@ -6291,7 +6291,7 @@ static inline DWORD argb_to_fmt(DWORD color, WINED3DFORMAT destfmt) {
return
ret
;
case
WINED3DFMT_X8B8G8R8
:
case
WINED3DFMT_
A8B8G8R8
:
case
WINED3DFMT_
R8G8B8A8_UNORM
:
ret
=
a
<<
24
;
ret
|=
b
<<
16
;
ret
|=
g
<<
8
;
...
...
@@ -6311,7 +6311,7 @@ static inline DWORD argb_to_fmt(DWORD color, WINED3DFORMAT destfmt) {
TRACE
(
"Returning %08x
\n
"
,
ret
);
return
ret
;
case
WINED3DFMT_
A2B10G10R10
:
case
WINED3DFMT_
R10G10B10A2_UNORM
:
a
=
(
a
*
4
)
/
256
;
r
=
(
r
*
1024
)
/
256
;
g
=
(
g
*
1024
)
/
256
;
...
...
dlls/wined3d/directx.c
View file @
8cefc47d
...
...
@@ -1729,17 +1729,17 @@ static BOOL IWineD3DImpl_IsPixelFormatCompatibleWithRenderFmt(const WineD3D_Pixe
return
TRUE
;
}
else
if
(
cfg
->
iPixelType
==
WGL_TYPE_RGBA_FLOAT_ARB
)
{
/* Float RGBA formats; TODO: WGL_NV_float_buffer */
if
(
Format
==
WINED3DFMT_R16
F
)
if
(
Format
==
WINED3DFMT_R16
_FLOAT
)
return
(
cfg
->
redSize
==
16
&&
cfg
->
greenSize
==
0
&&
cfg
->
blueSize
==
0
&&
cfg
->
alphaSize
==
0
);
if
(
Format
==
WINED3DFMT_
G16R16F
)
if
(
Format
==
WINED3DFMT_
R16G16_FLOAT
)
return
(
cfg
->
redSize
==
16
&&
cfg
->
greenSize
==
16
&&
cfg
->
blueSize
==
0
&&
cfg
->
alphaSize
==
0
);
if
(
Format
==
WINED3DFMT_
A16B16G16R16F
)
if
(
Format
==
WINED3DFMT_
R16G16B16A16_FLOAT
)
return
(
cfg
->
redSize
==
16
&&
cfg
->
greenSize
==
16
&&
cfg
->
blueSize
==
16
&&
cfg
->
alphaSize
==
16
);
if
(
Format
==
WINED3DFMT_R32
F
)
if
(
Format
==
WINED3DFMT_R32
_FLOAT
)
return
(
cfg
->
redSize
==
32
&&
cfg
->
greenSize
==
0
&&
cfg
->
blueSize
==
0
&&
cfg
->
alphaSize
==
0
);
if
(
Format
==
WINED3DFMT_
G32R32F
)
if
(
Format
==
WINED3DFMT_
R32G32_FLOAT
)
return
(
cfg
->
redSize
==
32
&&
cfg
->
greenSize
==
32
&&
cfg
->
blueSize
==
0
&&
cfg
->
alphaSize
==
0
);
if
(
Format
==
WINED3DFMT_
A32B32G32R32F
)
if
(
Format
==
WINED3DFMT_
R32G32B32A32_FLOAT
)
return
(
cfg
->
redSize
==
32
&&
cfg
->
greenSize
==
32
&&
cfg
->
blueSize
==
32
&&
cfg
->
alphaSize
==
32
);
}
else
{
/* Probably a color index mode */
...
...
@@ -1997,11 +1997,11 @@ static BOOL CheckBumpMapCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
const
struct
GlPixelFormatDesc
*
glDesc
;
switch
(
CheckFormat
)
{
case
WINED3DFMT_
V8U8
:
case
WINED3DFMT_
V16U16
:
case
WINED3DFMT_
R8G8_SNORM
:
case
WINED3DFMT_
R16G16_SNORM
:
case
WINED3DFMT_L6V5U5
:
case
WINED3DFMT_X8L8V8U8
:
case
WINED3DFMT_
Q8W8V8U8
:
case
WINED3DFMT_
R8G8B8A8_SNORM
:
/* Ask the fixed function pipeline implementation if it can deal
* with the conversion. If we've got a GL extension giving native
* support this will be an identity conversion. */
...
...
@@ -2222,13 +2222,13 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
case
WINED3DFMT_X1R5G5B5
:
case
WINED3DFMT_A1R5G5B5
:
case
WINED3DFMT_A4R4G4B4
:
case
WINED3DFMT_A8
:
case
WINED3DFMT_A8
_UNORM
:
case
WINED3DFMT_X4R4G4B4
:
case
WINED3DFMT_
A8B8G8R8
:
case
WINED3DFMT_
R8G8B8A8_UNORM
:
case
WINED3DFMT_X8B8G8R8
:
case
WINED3DFMT_A2R10G10B10
:
case
WINED3DFMT_
A2B10G10R10
:
case
WINED3DFMT_
G16R16
:
case
WINED3DFMT_
R10G10B10A2_UNORM
:
case
WINED3DFMT_
R16G16_UNORM
:
TRACE_
(
d3d_caps
)(
"[OK]
\n
"
);
return
TRUE
;
...
...
@@ -2264,7 +2264,7 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
* Supported: Depth/Stencil formats
*/
case
WINED3DFMT_D16_LOCKABLE
:
case
WINED3DFMT_D16
:
case
WINED3DFMT_D16
_UNORM
:
case
WINED3DFMT_D15S1
:
case
WINED3DFMT_D24X8
:
case
WINED3DFMT_D24X4S4
:
...
...
@@ -2278,11 +2278,11 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
* Not supported everywhere(depends on GL_ATI_envmap_bumpmap or
* GL_NV_texture_shader). Emulated by shaders
*/
case
WINED3DFMT_
V8U8
:
case
WINED3DFMT_
R8G8_SNORM
:
case
WINED3DFMT_X8L8V8U8
:
case
WINED3DFMT_L6V5U5
:
case
WINED3DFMT_
Q8W8V8U8
:
case
WINED3DFMT_
V16U16
:
case
WINED3DFMT_
R8G8B8A8_SNORM
:
case
WINED3DFMT_
R16G16_SNORM
:
/* Ask the shader backend if it can deal with the conversion. If
* we've got a GL extension giving native support this will be an
* identity conversion. */
...
...
@@ -2313,9 +2313,9 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
* Odd formats - not supported
*/
case
WINED3DFMT_VERTEXDATA
:
case
WINED3DFMT_
INDEX16
:
case
WINED3DFMT_
INDEX32
:
case
WINED3DFMT_
Q16W16V16U16
:
case
WINED3DFMT_
R16_UINT
:
case
WINED3DFMT_
R32_UINT
:
case
WINED3DFMT_
R16G16B16A16_SNORM
:
case
WINED3DFMT_A2W10V10U10
:
case
WINED3DFMT_W11V11U10
:
TRACE_
(
d3d_caps
)(
"[FAILED]
\n
"
);
/* Enable when implemented */
...
...
@@ -2342,14 +2342,14 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
return
FALSE
;
/* Not supported */
case
WINED3DFMT_
A16B16G16R16
:
case
WINED3DFMT_
R16G16B16A16_UNORM
:
case
WINED3DFMT_A8R3G3B2
:
TRACE_
(
d3d_caps
)(
"[FAILED]
\n
"
);
/* Enable when implemented */
return
FALSE
;
/* Floating point formats */
case
WINED3DFMT_R16
F
:
case
WINED3DFMT_
A16B16G16R16F
:
case
WINED3DFMT_R16
_FLOAT
:
case
WINED3DFMT_
R16G16B16A16_FLOAT
:
if
(
GL_SUPPORT
(
ARB_TEXTURE_FLOAT
)
&&
GL_SUPPORT
(
ARB_HALF_FLOAT_PIXEL
))
{
TRACE_
(
d3d_caps
)(
"[OK]
\n
"
);
return
TRUE
;
...
...
@@ -2357,8 +2357,8 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
TRACE_
(
d3d_caps
)(
"[FAILED]
\n
"
);
return
FALSE
;
case
WINED3DFMT_R32
F
:
case
WINED3DFMT_
A32B32G32R32F
:
case
WINED3DFMT_R32
_FLOAT
:
case
WINED3DFMT_
R32G32B32A32_FLOAT
:
if
(
GL_SUPPORT
(
ARB_TEXTURE_FLOAT
))
{
TRACE_
(
d3d_caps
)(
"[OK]
\n
"
);
return
TRUE
;
...
...
@@ -2366,8 +2366,8 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DDEVTYPE DeviceType, WINE
TRACE_
(
d3d_caps
)(
"[FAILED]
\n
"
);
return
FALSE
;
case
WINED3DFMT_
G16R16F
:
case
WINED3DFMT_
G32R32F
:
case
WINED3DFMT_
R16G16_FLOAT
:
case
WINED3DFMT_
R32G32_FLOAT
:
if
(
GL_SUPPORT
(
ARB_TEXTURE_RG
))
{
TRACE_
(
d3d_caps
)(
"[OK]
\n
"
);
return
TRUE
;
...
...
@@ -2455,15 +2455,15 @@ static BOOL CheckSurfaceCapability(UINT Adapter, WINED3DFORMAT AdapterFormat, WI
case
WINED3DFMT_A1R5G5B5
:
case
WINED3DFMT_A4R4G4B4
:
case
WINED3DFMT_R3G3B2
:
case
WINED3DFMT_A8
:
case
WINED3DFMT_A8
_UNORM
:
case
WINED3DFMT_A8R3G3B2
:
case
WINED3DFMT_X4R4G4B4
:
case
WINED3DFMT_
A2B10G10R10
:
case
WINED3DFMT_
A8B8G8R8
:
case
WINED3DFMT_
R10G10B10A2_UNORM
:
case
WINED3DFMT_
R8G8B8A8_UNORM
:
case
WINED3DFMT_X8B8G8R8
:
case
WINED3DFMT_
G16R16
:
case
WINED3DFMT_
R16G16_UNORM
:
case
WINED3DFMT_A2R10G10B10
:
case
WINED3DFMT_
A16B16G16R16
:
case
WINED3DFMT_
R16G16B16A16_UNORM
:
case
WINED3DFMT_P8
:
TRACE_
(
d3d_caps
)(
"[OK]
\n
"
);
return
TRUE
;
...
...
@@ -2500,7 +2500,7 @@ static BOOL CheckVertexTextureCapability(UINT Adapter, WINED3DFORMAT CheckFormat
}
switch
(
CheckFormat
)
{
case
WINED3DFMT_
A32B32G32R32F
:
case
WINED3DFMT_
R32G32B32A32_FLOAT
:
if
(
!
GL_SUPPORT
(
ARB_TEXTURE_FLOAT
))
{
TRACE_
(
d3d_caps
)(
"[FAILED]
\n
"
);
return
FALSE
;
...
...
@@ -2920,23 +2920,23 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
switch
(
CheckFormat
)
{
case
WINED3DFMT_P8
:
case
WINED3DFMT_A4L4
:
case
WINED3DFMT_R32
F
:
case
WINED3DFMT_R16
F
:
case
WINED3DFMT_R32
_FLOAT
:
case
WINED3DFMT_R16
_FLOAT
:
case
WINED3DFMT_X8L8V8U8
:
case
WINED3DFMT_L6V5U5
:
case
WINED3DFMT_
G16R16
:
case
WINED3DFMT_
R16G16_UNORM
:
TRACE_
(
d3d_caps
)(
"[FAILED] - No converted formats on volumes
\n
"
);
return
WINED3DERR_NOTAVAILABLE
;
case
WINED3DFMT_
Q8W8V8U8
:
case
WINED3DFMT_
V16U16
:
case
WINED3DFMT_
R8G8B8A8_SNORM
:
case
WINED3DFMT_
R16G16_SNORM
:
if
(
!
GL_SUPPORT
(
NV_TEXTURE_SHADER
))
{
TRACE_
(
d3d_caps
)(
"[FAILED] - No converted formats on volumes
\n
"
);
return
WINED3DERR_NOTAVAILABLE
;
}
break
;
case
WINED3DFMT_
V8U8
:
case
WINED3DFMT_
R8G8_SNORM
:
if
(
!
GL_SUPPORT
(
NV_TEXTURE_SHADER
))
{
TRACE_
(
d3d_caps
)(
"[FAILED] - No converted formats on volumes
\n
"
);
return
WINED3DERR_NOTAVAILABLE
;
...
...
dlls/wined3d/surface.c
View file @
8cefc47d
...
...
@@ -1708,7 +1708,7 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_
}
break
;
case
WINED3DFMT_
V8U8
:
case
WINED3DFMT_
R8G8_SNORM
:
if
(
GL_SUPPORT
(
NV_TEXTURE_SHADER3
))
break
;
*
convert
=
CONVERT_V8U8
;
*
format
=
GL_BGR
;
...
...
@@ -1748,7 +1748,7 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_
}
break
;
case
WINED3DFMT_
Q8W8V8U8
:
case
WINED3DFMT_
R8G8B8A8_SNORM
:
if
(
GL_SUPPORT
(
NV_TEXTURE_SHADER3
))
break
;
*
convert
=
CONVERT_Q8W8V8U8
;
*
format
=
GL_BGRA
;
...
...
@@ -1757,7 +1757,7 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_
*
target_bpp
=
4
;
break
;
case
WINED3DFMT_
V16U16
:
case
WINED3DFMT_
R16G16_SNORM
:
if
(
GL_SUPPORT
(
NV_TEXTURE_SHADER3
))
break
;
*
convert
=
CONVERT_V16U16
;
*
format
=
GL_BGR
;
...
...
@@ -1778,7 +1778,7 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_
*
target_bpp
=
2
;
break
;
case
WINED3DFMT_
G16R16
:
case
WINED3DFMT_
R16G16_UNORM
:
*
convert
=
CONVERT_G16R16
;
*
format
=
GL_RGB
;
*
internal
=
GL_RGB16_EXT
;
...
...
@@ -3641,7 +3641,7 @@ static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *D
if
(
Flags
&
WINEDDBLT_DEPTHFILL
)
{
switch
(
This
->
resource
.
format
)
{
case
WINED3DFMT_D16
:
case
WINED3DFMT_D16
_UNORM
:
depth
=
(
float
)
DDBltFx
->
u5
.
dwFillDepth
/
(
float
)
0x0000ffff
;
break
;
case
WINED3DFMT_D15S1
:
...
...
dlls/wined3d/surface_base.c
View file @
8cefc47d
...
...
@@ -617,12 +617,12 @@ HRESULT IWineD3DBaseSurfaceImpl_CreateDIBSection(IWineD3DSurface *iface) {
case
WINED3DFMT_X4R4G4B4
:
case
WINED3DFMT_R3G3B2
:
case
WINED3DFMT_A8R3G3B2
:
case
WINED3DFMT_
A2B10G10R10
:
case
WINED3DFMT_
A8B8G8R8
:
case
WINED3DFMT_
R10G10B10A2_UNORM
:
case
WINED3DFMT_
R8G8B8A8_UNORM
:
case
WINED3DFMT_X8B8G8R8
:
case
WINED3DFMT_A2R10G10B10
:
case
WINED3DFMT_R5G6B5
:
case
WINED3DFMT_
A16B16G16R16
:
case
WINED3DFMT_
R16G16B16A16_UNORM
:
usage
=
0
;
b_info
->
bmiHeader
.
biCompression
=
BI_BITFIELDS
;
masks
[
0
]
=
formatEntry
->
redMask
;
...
...
@@ -681,7 +681,7 @@ HRESULT IWineD3DBaseSurfaceImpl_CreateDIBSection(IWineD3DSurface *iface) {
return
WINED3D_OK
;
}
static
void
convert_r32
f_r16f
(
const
BYTE
*
src
,
BYTE
*
dst
,
DWORD
pitch_in
,
DWORD
pitch_out
,
static
void
convert_r32
_float_r16_float
(
const
BYTE
*
src
,
BYTE
*
dst
,
DWORD
pitch_in
,
DWORD
pitch_out
,
unsigned
int
w
,
unsigned
int
h
)
{
unsigned
int
x
,
y
;
...
...
@@ -745,7 +745,7 @@ struct d3dfmt_convertor_desc {
static
const
struct
d3dfmt_convertor_desc
convertors
[]
=
{
{
WINED3DFMT_R32
F
,
WINED3DFMT_R16F
,
convert_r32f_r16f
},
{
WINED3DFMT_R32
_FLOAT
,
WINED3DFMT_R16_FLOAT
,
convert_r32_float_r16_float
},
{
WINED3DFMT_R5G6B5
,
WINED3DFMT_X8R8G8B8
,
convert_r5g6b5_x8r8g8b8
},
};
...
...
dlls/wined3d/utils.c
View file @
8cefc47d
...
...
@@ -39,83 +39,83 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d);
* formats are not usable in 2D rendering because ddraw doesn't support them.
*/
static
const
StaticPixelFormatDesc
formats
[]
=
{
/*
{WINED3DFORMAT ,alphamask ,redmask ,greenmask ,bluemask ,bpp ,depth ,stencil, isFourcc
*/
{
WINED3DFMT_UNKNOWN
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
/*
WINED3DFORMAT alphamask redmask greenmask bluemask bpp depth stencil isFourcc
*/
{
WINED3DFMT_UNKNOWN
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
/* FourCC formats, kept here to have WINED3DFMT_R8G8B8(=20) at position 20 */
{
WINED3DFMT_UYVY
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_YUY2
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_YV12
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT1
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT2
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT3
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT4
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT5
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_MULTI2_ARGB8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
/*?*/
,
0
,
0
,
TRUE
},
{
WINED3DFMT_G8R8_G8B8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
/*?*/
,
0
,
0
,
TRUE
},
{
WINED3DFMT_R8G8_B8G8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
/*?*/
,
0
,
0
,
TRUE
},
{
WINED3DFMT_UYVY
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_YUY2
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_YV12
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT1
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT2
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT3
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT4
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_DXT5
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_MULTI2_ARGB8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
/*?*/
,
0
,
0
,
TRUE
},
{
WINED3DFMT_G8R8_G8B8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
/*?*/
,
0
,
0
,
TRUE
},
{
WINED3DFMT_R8G8_B8G8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
/*?*/
,
0
,
0
,
TRUE
},
/* IEEE formats */
{
WINED3DFMT_R32
F
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
G32R32F
,
0x0
,
0x0
,
0x0
,
0x0
,
8
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
A32B32G32R32F
,
0x1
,
0x0
,
0x0
,
0x0
,
16
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R32
_FLOAT
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R32G32_FLOAT
,
0x0
,
0x0
,
0x0
,
0x0
,
8
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R32G32B32A32_FLOAT
,
0x1
,
0x0
,
0x0
,
0x0
,
16
,
0
,
0
,
FALSE
},
/* Hmm? */
{
WINED3DFMT_CxV8U8
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_CxV8U8
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
/* Float */
{
WINED3DFMT_R16
F
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
G16R16F
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
A16B16G16R16F
,
0x1
,
0x0
,
0x0
,
0x0
,
8
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R16
_FLOAT
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16G16_FLOAT
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16G16B16A16_FLOAT
,
0x1
,
0x0
,
0x0
,
0x0
,
8
,
0
,
0
,
FALSE
},
/* Palettized formats */
{
WINED3DFMT_A8P8
,
0x0000ff00
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_P8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8P8
,
0x0000ff00
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_P8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
/* Standard ARGB formats. Keep WINED3DFMT_R8G8B8(=20) at position 20 */
{
WINED3DFMT_R8G8B8
,
0x0
,
0x00ff0000
,
0x0000ff00
,
0x000000ff
,
3
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8R8G8B8
,
0xff000000
,
0x00ff0000
,
0x0000ff00
,
0x000000ff
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X8R8G8B8
,
0x0
,
0x00ff0000
,
0x0000ff00
,
0x000000ff
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R5G6B5
,
0x0
,
0x0000F800
,
0x000007e0
,
0x0000001f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X1R5G5B5
,
0x0
,
0x00007c00
,
0x000003e0
,
0x0000001f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A1R5G5B5
,
0x00008000
,
0x00007c00
,
0x000003e0
,
0x0000001f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A4R4G4B4
,
0x0000f000
,
0x00000f00
,
0x000000f0
,
0x0000000f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R3G3B2
,
0x0
,
0x000000e0
,
0x0000001c
,
0x00000003
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8
,
0x000000ff
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8R3G3B2
,
0x0000ff00
,
0x000000e0
,
0x0000001c
,
0x00000003
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X4R4G4B4
,
0x0
,
0x00000f00
,
0x000000f0
,
0x0000000f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
A2B10G10R10
,
0xb0000000
,
0x000003ff
,
0x000ffc00
,
0x3ff00000
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
A8B8G8R8
,
0xff000000
,
0x000000ff
,
0x0000ff00
,
0x00ff0000
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X8B8G8R8
,
0x0
,
0x000000ff
,
0x0000ff00
,
0x00ff0000
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
G16R16
,
0x0
,
0x0000ffff
,
0xffff0000
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A2R10G10B10
,
0xb0000000
,
0x3ff00000
,
0x000ffc00
,
0x000003ff
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
A16B16G16R16
,
0x1
,
0x0000ffff
,
0xffff0000
,
0x0
,
8
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R8G8B8
,
0x0
,
0x00ff0000
,
0x0000ff00
,
0x000000ff
,
3
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8R8G8B8
,
0xff000000
,
0x00ff0000
,
0x0000ff00
,
0x000000ff
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X8R8G8B8
,
0x0
,
0x00ff0000
,
0x0000ff00
,
0x000000ff
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R5G6B5
,
0x0
,
0x0000f800
,
0x000007e0
,
0x0000001f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X1R5G5B5
,
0x0
,
0x00007c00
,
0x000003e0
,
0x0000001f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A1R5G5B5
,
0x00008000
,
0x00007c00
,
0x000003e0
,
0x0000001f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A4R4G4B4
,
0x0000f000
,
0x00000f00
,
0x000000f0
,
0x0000000f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_R3G3B2
,
0x0
,
0x000000e0
,
0x0000001c
,
0x00000003
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8
_UNORM
,
0x000000ff
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8R3G3B2
,
0x0000ff00
,
0x000000e0
,
0x0000001c
,
0x00000003
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X4R4G4B4
,
0x0
,
0x00000f00
,
0x000000f0
,
0x0000000f
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R10G10B10A2_UNORM
,
0xb0000000
,
0x000003ff
,
0x000ffc00
,
0x3ff00000
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R8G8B8A8_UNORM
,
0xff000000
,
0x000000ff
,
0x0000ff00
,
0x00ff0000
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X8B8G8R8
,
0x0
,
0x000000ff
,
0x0000ff00
,
0x00ff0000
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16G16_UNORM
,
0x0
,
0x0000ffff
,
0xffff0000
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A2R10G10B10
,
0xb0000000
,
0x3ff00000
,
0x000ffc00
,
0x000003ff
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16G16B16A16_UNORM
,
0x1
,
0x0000ffff
,
0xffff0000
,
0x0
,
8
,
0
,
0
,
FALSE
},
/* Luminance */
{
WINED3DFMT_L8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8L8
,
0x0000ff00
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A4L4
,
0x000000f0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_L8
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A8L8
,
0x0000ff00
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A4L4
,
0x000000f0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
FALSE
},
/* Bump mapping stuff */
{
WINED3DFMT_
V8U8
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_L6V5U5
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X8L8V8U8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
Q8W8V8U8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
V16U16
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_W11V11U10
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A2W10V10U10
,
0xb0000000
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R8G8_SNORM
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_L6V5U5
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_X8L8V8U8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R8G8B8A8_SNORM
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16G16_SNORM
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_W11V11U10
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_A2W10V10U10
,
0xb0000000
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
/* Depth stencil formats */
{
WINED3DFMT_D16_LOCKABLE
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
16
,
0
,
FALSE
},
{
WINED3DFMT_D32
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
32
,
0
,
FALSE
},
{
WINED3DFMT_D15S1
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
15
,
1
,
FALSE
},
{
WINED3DFMT_D24S8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
8
,
FALSE
},
{
WINED3DFMT_D24X8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
0
,
FALSE
},
{
WINED3DFMT_D24X4S4
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
4
,
FALSE
},
{
WINED3DFMT_D16
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
16
,
0
,
FALSE
},
{
WINED3DFMT_L16
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
16
,
0
,
FALSE
},
{
WINED3DFMT_D32F_LOCKABLE
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
32
,
0
,
FALSE
},
{
WINED3DFMT_D24FS8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
8
,
FALSE
},
{
WINED3DFMT_D16_LOCKABLE
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
16
,
0
,
FALSE
},
{
WINED3DFMT_D32
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
32
,
0
,
FALSE
},
{
WINED3DFMT_D15S1
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
15
,
1
,
FALSE
},
{
WINED3DFMT_D24S8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
8
,
FALSE
},
{
WINED3DFMT_D24X8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
0
,
FALSE
},
{
WINED3DFMT_D24X4S4
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
4
,
FALSE
},
{
WINED3DFMT_D16
_UNORM
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
16
,
0
,
FALSE
},
{
WINED3DFMT_L16
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
16
,
0
,
FALSE
},
{
WINED3DFMT_D32F_LOCKABLE
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
32
,
0
,
FALSE
},
{
WINED3DFMT_D24FS8
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
24
,
8
,
FALSE
},
/* Is this a vertex buffer? */
{
WINED3DFMT_VERTEXDATA
,
0x0
,
0x0
,
0x0
,
0x0
,
0
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
INDEX16
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
INDEX32
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
Q16W16V16U16
,
0x0
,
0x0
,
0x0
,
0x0
,
8
,
0
,
0
,
FALSE
},
{
WINED3DFMT_VERTEXDATA
,
0x0
,
0x0
,
0x0
,
0x0
,
0
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16_UINT
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R32_UINT
,
0x0
,
0x0
,
0x0
,
0x0
,
4
,
0
,
0
,
FALSE
},
{
WINED3DFMT_
R16G16B16A16_SNORM
,
0x0
,
0x0
,
0x0
,
0x0
,
8
,
0
,
0
,
FALSE
},
/* Vendor-specific formats */
{
WINED3DFMT_ATI2N
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_NVHU
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_NVHS
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_ATI2N
,
0x0
,
0x0
,
0x0
,
0x0
,
1
,
0
,
0
,
TRUE
},
{
WINED3DFMT_NVHU
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
{
WINED3DFMT_NVHS
,
0x0
,
0x0
,
0x0
,
0x0
,
2
,
0
,
0
,
TRUE
},
};
typedef
struct
{
...
...
@@ -131,10 +131,12 @@ typedef struct {
* table.
*/
static
const
GlPixelFormatDescTemplate
gl_formats_template
[]
=
{
/*{ internal ,srgbInternal , rtInternal, format ,type \
,Flags }*/
{
WINED3DFMT_UNKNOWN
,
0
,
0
,
0
,
0
,
0
,
0
},
/* WINED3DFORMAT internal srgbInternal rtInternal
format type
flags */
{
WINED3DFMT_UNKNOWN
,
0
,
0
,
0
,
0
,
0
,
0
},
/* FourCC formats */
/* GL_APPLE_ycbcr_422 claims that its '2YUV' format, which is supported via the UNSIGNED_SHORT_8_8_REV_APPLE type
* is equivalent to 'UYVY' format on Windows, and the 'YUVS' via UNSIGNED_SHORT_8_8_APPLE equates to 'YUY2'. The
...
...
@@ -142,144 +144,208 @@ static const GlPixelFormatDescTemplate gl_formats_template[] = {
* Macs, so probably the endianess differs. This could be tested as soon as we have a Windows and MacOS on a big
* endian machine
*/
{
WINED3DFMT_UYVY
,
GL_RGB
,
GL_RGB
,
0
,
GL_YCBCR_422_APPLE
,
UNSIGNED_SHORT_8_8_APPLE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_YUY2
,
GL_RGB
,
GL_RGB
,
0
,
GL_YCBCR_422_APPLE
,
UNSIGNED_SHORT_8_8_REV_APPLE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_YV12
,
GL_ALPHA
,
GL_ALPHA
,
0
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT1
,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT2
,
GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT3
,
GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT4
,
GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT5
,
GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_MULTI2_ARGB8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_G8R8_G8B8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_R8G8_B8G8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_UYVY
,
GL_RGB
,
GL_RGB
,
0
,
GL_YCBCR_422_APPLE
,
UNSIGNED_SHORT_8_8_APPLE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_YUY2
,
GL_RGB
,
GL_RGB
,
0
,
GL_YCBCR_422_APPLE
,
UNSIGNED_SHORT_8_8_REV_APPLE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_YV12
,
GL_ALPHA
,
GL_ALPHA
,
0
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT1
,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT2
,
GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT3
,
GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT4
,
GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_DXT5
,
GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
,
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_MULTI2_ARGB8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_G8R8_G8B8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_R8G8_B8G8
,
0
,
0
,
0
,
0
,
0
,
0
},
/* IEEE formats */
{
WINED3DFMT_R32F
,
GL_RGB32F_ARB
,
GL_RGB32F_ARB
,
0
,
GL_RED
,
GL_FLOAT
,
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_G32R32F
,
GL_RG32F
,
GL_RG32F
,
0
,
GL_RG
,
GL_FLOAT
,
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_A32B32G32R32F
,
GL_RGBA32F_ARB
,
GL_RGBA32F_ARB
,
0
,
GL_RGBA
,
GL_FLOAT
,
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R32_FLOAT
,
GL_RGB32F_ARB
,
GL_RGB32F_ARB
,
0
,
GL_RED
,
GL_FLOAT
,
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R32G32_FLOAT
,
GL_RG32F
,
GL_RG32F
,
0
,
GL_RG
,
GL_FLOAT
,
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R32G32B32A32_FLOAT
,
GL_RGBA32F_ARB
,
GL_RGBA32F_ARB
,
0
,
GL_RGBA
,
GL_FLOAT
,
WINED3DFMT_FLAG_RENDERTARGET
},
/* Hmm? */
{
WINED3DFMT_CxV8U8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_CxV8U8
,
0
,
0
,
0
,
0
,
0
,
0
},
/* Float */
{
WINED3DFMT_R16F
,
GL_RGB16F_ARB
,
GL_RGB16F_ARB
,
0
,
GL_RED
,
GL_HALF_FLOAT_ARB
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_G16R16F
,
GL_RG16F
,
GL_RG16F
,
0
,
GL_RG
,
GL_HALF_FLOAT_ARB
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_A16B16G16R16F
,
GL_RGBA16F_ARB
,
GL_RGBA16F_ARB
,
0
,
GL_RGBA
,
GL_HALF_FLOAT_ARB
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R16_FLOAT
,
GL_RGB16F_ARB
,
GL_RGB16F_ARB
,
0
,
GL_RED
,
GL_HALF_FLOAT_ARB
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R16G16_FLOAT
,
GL_RG16F
,
GL_RG16F
,
0
,
GL_RG
,
GL_HALF_FLOAT_ARB
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R16G16B16A16_FLOAT
,
GL_RGBA16F_ARB
,
GL_RGBA16F_ARB
,
0
,
GL_RGBA
,
GL_HALF_FLOAT_ARB
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
/* Palettized formats */
{
WINED3DFMT_A8P8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_P8
,
GL_COLOR_INDEX8_EXT
,
GL_COLOR_INDEX8_EXT
,
0
,
GL_COLOR_INDEX
,
GL_UNSIGNED_BYTE
,
0
},
{
WINED3DFMT_A8P8
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_P8
,
GL_COLOR_INDEX8_EXT
,
GL_COLOR_INDEX8_EXT
,
0
,
GL_COLOR_INDEX
,
GL_UNSIGNED_BYTE
,
0
},
/* Standard ARGB formats */
{
WINED3DFMT_R8G8B8
,
GL_RGB8
,
GL_RGB8
,
0
,
GL_BGR
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_A8R8G8B8
,
GL_RGBA8
,
GL_SRGB8_ALPHA8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_X8R8G8B8
,
GL_RGB8
,
GL_SRGB8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R5G6B5
,
GL_RGB5
,
GL_RGB5
,
GL_RGB8
,
GL_RGB
,
GL_UNSIGNED_SHORT_5_6_5
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_X1R5G5B5
,
GL_RGB5
,
GL_RGB5_A1
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_1_5_5_5_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A1R5G5B5
,
GL_RGB5_A1
,
GL_RGB5_A1
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_1_5_5_5_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A4R4G4B4
,
GL_RGBA4
,
GL_SRGB8_ALPHA8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_4_4_4_4_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R3G3B2
,
GL_R3_G3_B2
,
GL_R3_G3_B2
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE_3_3_2
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
},
{
WINED3DFMT_A8
,
GL_ALPHA8
,
GL_ALPHA8
,
0
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
},
{
WINED3DFMT_A8R3G3B2
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_X4R4G4B4
,
GL_RGB4
,
GL_RGB4
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_4_4_4_4_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A2B10G10R10
,
GL_RGB10_A2
,
GL_RGB10_A2
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A8B8G8R8
,
GL_RGBA8
,
GL_RGBA8
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_X8B8G8R8
,
GL_RGB8
,
GL_RGB8
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_G16R16
,
GL_RGB16_EXT
,
GL_RGB16_EXT
,
0
,
GL_RGB
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A2R10G10B10
,
GL_RGB10_A2
,
GL_RGB10_A2
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A16B16G16R16
,
GL_RGBA16_EXT
,
GL_RGBA16_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R8G8B8
,
GL_RGB8
,
GL_RGB8
,
0
,
GL_BGR
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_A8R8G8B8
,
GL_RGBA8
,
GL_SRGB8_ALPHA8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_X8R8G8B8
,
GL_RGB8
,
GL_SRGB8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_R5G6B5
,
GL_RGB5
,
GL_RGB5
,
GL_RGB8
,
GL_RGB
,
GL_UNSIGNED_SHORT_5_6_5
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
{
WINED3DFMT_X1R5G5B5
,
GL_RGB5
,
GL_RGB5_A1
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_1_5_5_5_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A1R5G5B5
,
GL_RGB5_A1
,
GL_RGB5_A1
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_1_5_5_5_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A4R4G4B4
,
GL_RGBA4
,
GL_SRGB8_ALPHA8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_4_4_4_4_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R3G3B2
,
GL_R3_G3_B2
,
GL_R3_G3_B2
,
0
,
GL_RGB
,
GL_UNSIGNED_BYTE_3_3_2
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
},
{
WINED3DFMT_A8_UNORM
,
GL_ALPHA8
,
GL_ALPHA8
,
0
,
GL_ALPHA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
},
{
WINED3DFMT_A8R3G3B2
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_X4R4G4B4
,
GL_RGB4
,
GL_RGB4
,
0
,
GL_BGRA
,
GL_UNSIGNED_SHORT_4_4_4_4_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R10G10B10A2_UNORM
,
GL_RGB10_A2
,
GL_RGB10_A2
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R8G8B8A8_UNORM
,
GL_RGBA8
,
GL_RGBA8
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_X8B8G8R8
,
GL_RGB8
,
GL_RGB8
,
0
,
GL_RGBA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R16G16_UNORM
,
GL_RGB16_EXT
,
GL_RGB16_EXT
,
0
,
GL_RGB
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A2R10G10B10
,
GL_RGB10_A2
,
GL_RGB10_A2
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_2_10_10_10_REV
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R16G16B16A16_UNORM
,
GL_RGBA16_EXT
,
GL_RGBA16_EXT
,
0
,
GL_RGBA
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
},
/* Luminance */
{
WINED3DFMT_L8
,
GL_LUMINANCE8
,
GL_SLUMINANCE8_EXT
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A8L8
,
GL_LUMINANCE8_ALPHA8
,
GL_SLUMINANCE8_ALPHA8_EXT
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A4L4
,
GL_LUMINANCE4_ALPHA4
,
GL_LUMINANCE4_ALPHA4
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
},
{
WINED3DFMT_L8
,
GL_LUMINANCE8
,
GL_SLUMINANCE8_EXT
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A8L8
,
GL_LUMINANCE8_ALPHA8
,
GL_SLUMINANCE8_ALPHA8_EXT
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_A4L4
,
GL_LUMINANCE4_ALPHA4
,
GL_LUMINANCE4_ALPHA4
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
},
/* Bump mapping stuff */
{
WINED3DFMT_V8U8
,
GL_DSDT8_NV
,
GL_DSDT8_NV
,
0
,
GL_DSDT_NV
,
GL_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_L6V5U5
,
GL_DSDT8_MAG8_NV
,
GL_DSDT8_MAG8_NV
,
0
,
GL_DSDT_MAG_NV
,
GL_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_X8L8V8U8
,
GL_DSDT8_MAG8_INTENSITY8_NV
,
GL_DSDT8_MAG8_INTENSITY8_NV
,
0
,
GL_DSDT_MAG_VIB_NV
,
GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_Q8W8V8U8
,
GL_SIGNED_RGBA8_NV
,
GL_SIGNED_RGBA8_NV
,
0
,
GL_RGBA
,
GL_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_V16U16
,
GL_SIGNED_HILO16_NV
,
GL_SIGNED_HILO16_NV
,
0
,
GL_HILO_NV
,
GL_SHORT
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_W11V11U10
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_A2W10V10U10
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_R8G8_SNORM
,
GL_DSDT8_NV
,
GL_DSDT8_NV
,
0
,
GL_DSDT_NV
,
GL_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_L6V5U5
,
GL_DSDT8_MAG8_NV
,
GL_DSDT8_MAG8_NV
,
0
,
GL_DSDT_MAG_NV
,
GL_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_X8L8V8U8
,
GL_DSDT8_MAG8_INTENSITY8_NV
,
GL_DSDT8_MAG8_INTENSITY8_NV
,
0
,
GL_DSDT_MAG_VIB_NV
,
GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R8G8B8A8_SNORM
,
GL_SIGNED_RGBA8_NV
,
GL_SIGNED_RGBA8_NV
,
0
,
GL_RGBA
,
GL_BYTE
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_R16G16_SNORM
,
GL_SIGNED_HILO16_NV
,
GL_SIGNED_HILO16_NV
,
0
,
GL_HILO_NV
,
GL_SHORT
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_W11V11U10
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_A2W10V10U10
,
0
,
0
,
0
,
0
,
0
,
0
},
/* Depth stencil formats */
{
WINED3DFMT_D16_LOCKABLE
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D32
,
GL_DEPTH_COMPONENT32_ARB
,
GL_DEPTH_COMPONENT32_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D15S1
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D24S8
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D24X8
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D24X4S4
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D16
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_L16
,
GL_LUMINANCE16_EXT
,
GL_LUMINANCE16_EXT
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_D32F_LOCKABLE
,
GL_DEPTH_COMPONENT32_ARB
,
GL_DEPTH_COMPONENT32_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_FLOAT
,
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D24FS8
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_FLOAT
,
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D16_LOCKABLE
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D32
,
GL_DEPTH_COMPONENT32_ARB
,
GL_DEPTH_COMPONENT32_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D15S1
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D24S8
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D24X8
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D24X4S4
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_INT
,
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
{
WINED3DFMT_D16_UNORM
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_L16
,
GL_LUMINANCE16_EXT
,
GL_LUMINANCE16_EXT
,
0
,
GL_LUMINANCE
,
GL_UNSIGNED_SHORT
,
WINED3DFMT_FLAG_FILTERING
},
{
WINED3DFMT_D32F_LOCKABLE
,
GL_DEPTH_COMPONENT32_ARB
,
GL_DEPTH_COMPONENT32_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_FLOAT
,
WINED3DFMT_FLAG_DEPTH
},
{
WINED3DFMT_D24FS8
,
GL_DEPTH_COMPONENT24_ARB
,
GL_DEPTH_COMPONENT24_ARB
,
0
,
GL_DEPTH_COMPONENT
,
GL_FLOAT
,
WINED3DFMT_FLAG_DEPTH
|
WINED3DFMT_FLAG_STENCIL
},
/* Is this a vertex buffer? */
{
WINED3DFMT_VERTEXDATA
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_INDEX16
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_INDEX32
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_Q16W16V16U16
,
GL_COLOR_INDEX
,
GL_COLOR_INDEX
,
0
,
GL_COLOR_INDEX
,
GL_UNSIGNED_SHORT
,
0
},
{
WINED3DFMT_VERTEXDATA
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_R16_UINT
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_R32_UINT
,
0
,
0
,
0
,
0
,
0
,
0
},
{
WINED3DFMT_R16G16B16A16_SNORM
,
GL_COLOR_INDEX
,
GL_COLOR_INDEX
,
0
,
GL_COLOR_INDEX
,
GL_UNSIGNED_SHORT
,
0
},
/* Vendor-specific formats */
{
WINED3DFMT_ATI2N
,
0
,
0
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
},
{
WINED3DFMT_NVHU
,
0
,
0
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
},
{
WINED3DFMT_NVHS
,
0
,
0
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
}
{
WINED3DFMT_ATI2N
,
0
,
0
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
},
{
WINED3DFMT_NVHU
,
0
,
0
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
},
{
WINED3DFMT_NVHS
,
0
,
0
,
0
,
GL_LUMINANCE_ALPHA
,
GL_UNSIGNED_BYTE
,
0
}
};
static
inline
int
getFmtIdx
(
WINED3DFORMAT
fmt
)
{
...
...
@@ -363,7 +429,7 @@ BOOL initPixelFormats(WineD3D_GL_Info *gl_info)
}
}
dst
=
getFmtIdx
(
WINED3DFMT_R16
F
);
dst
=
getFmtIdx
(
WINED3DFMT_R16
_FLOAT
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_W
);
/* When ARB_texture_rg is supported we only require 16-bit for R16F instead of 64-bit RGBA16F */
...
...
@@ -373,7 +439,7 @@ BOOL initPixelFormats(WineD3D_GL_Info *gl_info)
gl_info
->
gl_formats
[
dst
].
glGammaInternal
=
GL_R16F
;
}
dst
=
getFmtIdx
(
WINED3DFMT_R32
F
);
dst
=
getFmtIdx
(
WINED3DFMT_R32
_FLOAT
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_W
);
/* When ARB_texture_rg is supported we only require 32-bit for R32F instead of 128-bit RGBA32F */
...
...
@@ -383,15 +449,15 @@ BOOL initPixelFormats(WineD3D_GL_Info *gl_info)
gl_info
->
gl_formats
[
dst
].
glGammaInternal
=
GL_R32F
;
}
dst
=
getFmtIdx
(
WINED3DFMT_
G16R16
);
dst
=
getFmtIdx
(
WINED3DFMT_
R16G16_UNORM
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_W
);
dst
=
getFmtIdx
(
WINED3DFMT_
G16R16F
);
dst
=
getFmtIdx
(
WINED3DFMT_
R16G16_FLOAT
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_W
);
dst
=
getFmtIdx
(
WINED3DFMT_
G32R32F
);
dst
=
getFmtIdx
(
WINED3DFMT_
R32G32_FLOAT
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_W
);
...
...
@@ -406,19 +472,19 @@ BOOL initPixelFormats(WineD3D_GL_Info *gl_info)
*/
if
(
!
GL_SUPPORT
(
NV_TEXTURE_SHADER
))
{
dst
=
getFmtIdx
(
WINED3DFMT_
V8U8
);
dst
=
getFmtIdx
(
WINED3DFMT_
R8G8_SNORM
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
1
,
CHANNEL_SOURCE_X
,
1
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_ONE
);
dst
=
getFmtIdx
(
WINED3DFMT_
V16U16
);
dst
=
getFmtIdx
(
WINED3DFMT_
R16G16_SNORM
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
1
,
CHANNEL_SOURCE_X
,
1
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_ONE
);
}
else
{
dst
=
getFmtIdx
(
WINED3DFMT_
V8U8
);
dst
=
getFmtIdx
(
WINED3DFMT_
R8G8_SNORM
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_ONE
);
dst
=
getFmtIdx
(
WINED3DFMT_
V16U16
);
dst
=
getFmtIdx
(
WINED3DFMT_
R16G16_SNORM
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
0
,
CHANNEL_SOURCE_X
,
0
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_ONE
,
0
,
CHANNEL_SOURCE_ONE
);
}
...
...
@@ -433,7 +499,7 @@ BOOL initPixelFormats(WineD3D_GL_Info *gl_info)
dst
=
getFmtIdx
(
WINED3DFMT_X8L8V8U8
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
1
,
CHANNEL_SOURCE_X
,
1
,
CHANNEL_SOURCE_Y
,
0
,
CHANNEL_SOURCE_Z
,
0
,
CHANNEL_SOURCE_W
);
dst
=
getFmtIdx
(
WINED3DFMT_
Q8W8V8U8
);
dst
=
getFmtIdx
(
WINED3DFMT_
R8G8B8A8_SNORM
);
gl_info
->
gl_formats
[
dst
].
color_fixup
=
create_color_fixup_desc
(
1
,
CHANNEL_SOURCE_X
,
1
,
CHANNEL_SOURCE_Y
,
1
,
CHANNEL_SOURCE_Z
,
1
,
CHANNEL_SOURCE_W
);
}
else
{
...
...
@@ -565,25 +631,17 @@ const char* debug_d3dformat(WINED3DFORMAT fmt) {
FMT_TO_STR
(
WINED3DFMT_A1R5G5B5
);
FMT_TO_STR
(
WINED3DFMT_A4R4G4B4
);
FMT_TO_STR
(
WINED3DFMT_R3G3B2
);
FMT_TO_STR
(
WINED3DFMT_A8
);
FMT_TO_STR
(
WINED3DFMT_A8R3G3B2
);
FMT_TO_STR
(
WINED3DFMT_X4R4G4B4
);
FMT_TO_STR
(
WINED3DFMT_A2B10G10R10
);
FMT_TO_STR
(
WINED3DFMT_A8B8G8R8
);
FMT_TO_STR
(
WINED3DFMT_X8B8G8R8
);
FMT_TO_STR
(
WINED3DFMT_G16R16
);
FMT_TO_STR
(
WINED3DFMT_A2R10G10B10
);
FMT_TO_STR
(
WINED3DFMT_A16B16G16R16
);
FMT_TO_STR
(
WINED3DFMT_A8P8
);
FMT_TO_STR
(
WINED3DFMT_P8
);
FMT_TO_STR
(
WINED3DFMT_L8
);
FMT_TO_STR
(
WINED3DFMT_A8L8
);
FMT_TO_STR
(
WINED3DFMT_A4L4
);
FMT_TO_STR
(
WINED3DFMT_V8U8
);
FMT_TO_STR
(
WINED3DFMT_L6V5U5
);
FMT_TO_STR
(
WINED3DFMT_X8L8V8U8
);
FMT_TO_STR
(
WINED3DFMT_Q8W8V8U8
);
FMT_TO_STR
(
WINED3DFMT_V16U16
);
FMT_TO_STR
(
WINED3DFMT_W11V11U10
);
FMT_TO_STR
(
WINED3DFMT_A2W10V10U10
);
FMT_TO_STR
(
WINED3DFMT_UYVY
);
...
...
@@ -603,24 +661,102 @@ const char* debug_d3dformat(WINED3DFORMAT fmt) {
FMT_TO_STR
(
WINED3DFMT_D24S8
);
FMT_TO_STR
(
WINED3DFMT_D24X8
);
FMT_TO_STR
(
WINED3DFMT_D24X4S4
);
FMT_TO_STR
(
WINED3DFMT_D16
);
FMT_TO_STR
(
WINED3DFMT_L16
);
FMT_TO_STR
(
WINED3DFMT_D32F_LOCKABLE
);
FMT_TO_STR
(
WINED3DFMT_D24FS8
);
FMT_TO_STR
(
WINED3DFMT_VERTEXDATA
);
FMT_TO_STR
(
WINED3DFMT_INDEX16
);
FMT_TO_STR
(
WINED3DFMT_INDEX32
);
FMT_TO_STR
(
WINED3DFMT_Q16W16V16U16
);
FMT_TO_STR
(
WINED3DFMT_R16F
);
FMT_TO_STR
(
WINED3DFMT_G16R16F
);
FMT_TO_STR
(
WINED3DFMT_A16B16G16R16F
);
FMT_TO_STR
(
WINED3DFMT_R32F
);
FMT_TO_STR
(
WINED3DFMT_G32R32F
);
FMT_TO_STR
(
WINED3DFMT_A32B32G32R32F
);
FMT_TO_STR
(
WINED3DFMT_CxV8U8
);
FMT_TO_STR
(
WINED3DFMT_ATI2N
);
FMT_TO_STR
(
WINED3DFMT_NVHU
);
FMT_TO_STR
(
WINED3DFMT_NVHS
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32A32_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32A32_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32A32_UINT
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32A32_SINT
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32_UINT
);
FMT_TO_STR
(
WINED3DFMT_R32G32B32_SINT
);
FMT_TO_STR
(
WINED3DFMT_R16G16B16A16_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R16G16B16A16_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R16G16B16A16_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R16G16B16A16_UINT
);
FMT_TO_STR
(
WINED3DFMT_R16G16B16A16_SNORM
);
FMT_TO_STR
(
WINED3DFMT_R16G16B16A16_SINT
);
FMT_TO_STR
(
WINED3DFMT_R32G32_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R32G32_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R32G32_UINT
);
FMT_TO_STR
(
WINED3DFMT_R32G32_SINT
);
FMT_TO_STR
(
WINED3DFMT_R32G8X24_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_D32_FLOAT_S8X24_UINT
);
FMT_TO_STR
(
WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_X32_TYPELESS_G8X24_UINT
);
FMT_TO_STR
(
WINED3DFMT_R10G10B10A2_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R10G10B10A2_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R10G10B10A2_UINT
);
FMT_TO_STR
(
WINED3DFMT_R11G11B10_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R8G8B8A8_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R8G8B8A8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R8G8B8A8_UNORM_SRGB
);
FMT_TO_STR
(
WINED3DFMT_R8G8B8A8_UINT
);
FMT_TO_STR
(
WINED3DFMT_R8G8B8A8_SNORM
);
FMT_TO_STR
(
WINED3DFMT_R8G8B8A8_SINT
);
FMT_TO_STR
(
WINED3DFMT_R16G16_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R16G16_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R16G16_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R16G16_UINT
);
FMT_TO_STR
(
WINED3DFMT_R16G16_SNORM
);
FMT_TO_STR
(
WINED3DFMT_R16G16_SINT
);
FMT_TO_STR
(
WINED3DFMT_R32_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_D32_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R32_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_R32_UINT
);
FMT_TO_STR
(
WINED3DFMT_R32_SINT
);
FMT_TO_STR
(
WINED3DFMT_R24G8_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_D24_UNORM_S8_UINT
);
FMT_TO_STR
(
WINED3DFMT_R24_UNORM_X8_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_X24_TYPELESS_G8_UINT
);
FMT_TO_STR
(
WINED3DFMT_R8G8_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R8G8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R8G8_UINT
);
FMT_TO_STR
(
WINED3DFMT_R8G8_SNORM
);
FMT_TO_STR
(
WINED3DFMT_R8G8_SINT
);
FMT_TO_STR
(
WINED3DFMT_R16_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R16_FLOAT
);
FMT_TO_STR
(
WINED3DFMT_D16_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R16_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R16_UINT
);
FMT_TO_STR
(
WINED3DFMT_R16_SNORM
);
FMT_TO_STR
(
WINED3DFMT_R16_SINT
);
FMT_TO_STR
(
WINED3DFMT_R8_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_R8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R8_UINT
);
FMT_TO_STR
(
WINED3DFMT_R8_SNORM
);
FMT_TO_STR
(
WINED3DFMT_R8_SINT
);
FMT_TO_STR
(
WINED3DFMT_A8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R1_UNORM
);
FMT_TO_STR
(
WINED3DFMT_R9G9B9E5_SHAREDEXP
);
FMT_TO_STR
(
WINED3DFMT_R8G8_B8G8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_G8R8_G8B8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_BC1_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_BC1_UNORM
);
FMT_TO_STR
(
WINED3DFMT_BC1_UNORM_SRGB
);
FMT_TO_STR
(
WINED3DFMT_BC2_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_BC2_UNORM
);
FMT_TO_STR
(
WINED3DFMT_BC2_UNORM_SRGB
);
FMT_TO_STR
(
WINED3DFMT_BC3_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_BC3_UNORM
);
FMT_TO_STR
(
WINED3DFMT_BC3_UNORM_SRGB
);
FMT_TO_STR
(
WINED3DFMT_BC4_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_BC4_UNORM
);
FMT_TO_STR
(
WINED3DFMT_BC4_SNORM
);
FMT_TO_STR
(
WINED3DFMT_BC5_TYPELESS
);
FMT_TO_STR
(
WINED3DFMT_BC5_UNORM
);
FMT_TO_STR
(
WINED3DFMT_BC5_SNORM
);
FMT_TO_STR
(
WINED3DFMT_B5G6R5_UNORM
);
FMT_TO_STR
(
WINED3DFMT_B5G5R5A1_UNORM
);
FMT_TO_STR
(
WINED3DFMT_B8G8R8A8_UNORM
);
FMT_TO_STR
(
WINED3DFMT_B8G8R8X8_UNORM
);
#undef FMT_TO_STR
default:
{
...
...
@@ -1439,7 +1575,7 @@ BOOL getDepthStencilBits(WINED3DFORMAT fmt, short *depthSize, short *stencilSize
switch
(
fmt
)
{
case
WINED3DFMT_D16_LOCKABLE
:
case
WINED3DFMT_D16
:
case
WINED3DFMT_D16
_UNORM
:
case
WINED3DFMT_D15S1
:
case
WINED3DFMT_D24X8
:
case
WINED3DFMT_D24X4S4
:
...
...
include/wine/wined3d.idl
View file @
8cefc47d
...
...
@@ -126,58 +126,130 @@ typedef enum _WINED3DDEGREETYPE
typedef
enum
_WINED3DFORMAT
{
WINED3DFMT_UNKNOWN
=
0
,
WINED3DFMT_R8G8B8
=
20
,
WINED3DFMT_A8R8G8B8
=
21
,
WINED3DFMT_X8R8G8B8
=
22
,
WINED3DFMT_R5G6B5
=
23
,
WINED3DFMT_X1R5G5B5
=
24
,
WINED3DFMT_A1R5G5B5
=
25
,
WINED3DFMT_A4R4G4B4
=
26
,
WINED3DFMT_R3G3B2
=
27
,
WINED3DFMT_A8
=
28
,
WINED3DFMT_A8R3G3B2
=
29
,
WINED3DFMT_X4R4G4B4
=
30
,
WINED3DFMT_A2B10G10R10
=
31
,
WINED3DFMT_A8B8G8R8
=
32
,
WINED3DFMT_X8B8G8R8
=
33
,
WINED3DFMT_G16R16
=
34
,
WINED3DFMT_A2R10G10B10
=
35
,
WINED3DFMT_A16B16G16R16
=
36
,
WINED3DFMT_A8P8
=
40
,
WINED3DFMT_P8
=
41
,
WINED3DFMT_L8
=
50
,
WINED3DFMT_A8L8
=
51
,
WINED3DFMT_A4L4
=
52
,
WINED3DFMT_V8U8
=
60
,
WINED3DFMT_L6V5U5
=
61
,
WINED3DFMT_X8L8V8U8
=
62
,
WINED3DFMT_Q8W8V8U8
=
63
,
WINED3DFMT_V16U16
=
64
,
WINED3DFMT_W11V11U10
=
65
,
WINED3DFMT_A2W10V10U10
=
67
,
WINED3DFMT_D16_LOCKABLE
=
70
,
WINED3DFMT_D32
=
71
,
WINED3DFMT_D15S1
=
73
,
WINED3DFMT_D24S8
=
75
,
WINED3DFMT_D24X8
=
77
,
WINED3DFMT_D24X4S4
=
79
,
WINED3DFMT_D16
=
80
,
WINED3DFMT_L16
=
81
,
WINED3DFMT_D32F_LOCKABLE
=
82
,
WINED3DFMT_D24FS8
=
83
,
WINED3DFMT_VERTEXDATA
=
100
,
WINED3DFMT_INDEX16
=
101
,
WINED3DFMT_INDEX32
=
102
,
WINED3DFMT_Q16W16V16U16
=
110
,
WINED3DFMT_R16F
=
111
,
WINED3DFMT_G16R16F
=
112
,
WINED3DFMT_A16B16G16R16F
=
113
,
WINED3DFMT_R32F
=
114
,
WINED3DFMT_G32R32F
=
115
,
WINED3DFMT_A32B32G32R32F
=
116
,
WINED3DFMT_CxV8U8
=
117
,
WINED3DFMT_FORCE_DWORD
=
0
xffffffff
WINED3DFMT_UNKNOWN
,
WINED3DFMT_R8G8B8
,
WINED3DFMT_A8R8G8B8
,
WINED3DFMT_X8R8G8B8
,
WINED3DFMT_R5G6B5
,
WINED3DFMT_X1R5G5B5
,
WINED3DFMT_A1R5G5B5
,
WINED3DFMT_A4R4G4B4
,
WINED3DFMT_R3G3B2
,
WINED3DFMT_A8R3G3B2
,
WINED3DFMT_X4R4G4B4
,
WINED3DFMT_X8B8G8R8
,
WINED3DFMT_A2R10G10B10
,
WINED3DFMT_A8P8
,
WINED3DFMT_P8
,
WINED3DFMT_L8
,
WINED3DFMT_A8L8
,
WINED3DFMT_A4L4
,
WINED3DFMT_L6V5U5
,
WINED3DFMT_X8L8V8U8
,
WINED3DFMT_W11V11U10
,
WINED3DFMT_A2W10V10U10
,
WINED3DFMT_D16_LOCKABLE
,
WINED3DFMT_D32
,
WINED3DFMT_D15S1
,
WINED3DFMT_D24S8
,
WINED3DFMT_D24X8
,
WINED3DFMT_D24X4S4
,
WINED3DFMT_L16
,
WINED3DFMT_D32F_LOCKABLE
,
WINED3DFMT_D24FS8
,
WINED3DFMT_VERTEXDATA
,
WINED3DFMT_CxV8U8
,
/*
DXGI
formats
*/
WINED3DFMT_R32G32B32A32_TYPELESS
,
WINED3DFMT_R32G32B32A32_FLOAT
,
WINED3DFMT_R32G32B32A32_UINT
,
WINED3DFMT_R32G32B32A32_SINT
,
WINED3DFMT_R32G32B32_TYPELESS
,
WINED3DFMT_R32G32B32_FLOAT
,
WINED3DFMT_R32G32B32_UINT
,
WINED3DFMT_R32G32B32_SINT
,
WINED3DFMT_R16G16B16A16_TYPELESS
,
WINED3DFMT_R16G16B16A16_FLOAT
,
WINED3DFMT_R16G16B16A16_UNORM
,
WINED3DFMT_R16G16B16A16_UINT
,
WINED3DFMT_R16G16B16A16_SNORM
,
WINED3DFMT_R16G16B16A16_SINT
,
WINED3DFMT_R32G32_TYPELESS
,
WINED3DFMT_R32G32_FLOAT
,
WINED3DFMT_R32G32_UINT
,
WINED3DFMT_R32G32_SINT
,
WINED3DFMT_R32G8X24_TYPELESS
,
WINED3DFMT_D32_FLOAT_S8X24_UINT
,
WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
,
WINED3DFMT_X32_TYPELESS_G8X24_UINT
,
WINED3DFMT_R10G10B10A2_TYPELESS
,
WINED3DFMT_R10G10B10A2_UNORM
,
WINED3DFMT_R10G10B10A2_UINT
,
WINED3DFMT_R11G11B10_FLOAT
,
WINED3DFMT_R8G8B8A8_TYPELESS
,
WINED3DFMT_R8G8B8A8_UNORM
,
WINED3DFMT_R8G8B8A8_UNORM_SRGB
,
WINED3DFMT_R8G8B8A8_UINT
,
WINED3DFMT_R8G8B8A8_SNORM
,
WINED3DFMT_R8G8B8A8_SINT
,
WINED3DFMT_R16G16_TYPELESS
,
WINED3DFMT_R16G16_FLOAT
,
WINED3DFMT_R16G16_UNORM
,
WINED3DFMT_R16G16_UINT
,
WINED3DFMT_R16G16_SNORM
,
WINED3DFMT_R16G16_SINT
,
WINED3DFMT_R32_TYPELESS
,
WINED3DFMT_D32_FLOAT
,
WINED3DFMT_R32_FLOAT
,
WINED3DFMT_R32_UINT
,
WINED3DFMT_R32_SINT
,
WINED3DFMT_R24G8_TYPELESS
,
WINED3DFMT_D24_UNORM_S8_UINT
,
WINED3DFMT_R24_UNORM_X8_TYPELESS
,
WINED3DFMT_X24_TYPELESS_G8_UINT
,
WINED3DFMT_R8G8_TYPELESS
,
WINED3DFMT_R8G8_UNORM
,
WINED3DFMT_R8G8_UINT
,
WINED3DFMT_R8G8_SNORM
,
WINED3DFMT_R8G8_SINT
,
WINED3DFMT_R16_TYPELESS
,
WINED3DFMT_R16_FLOAT
,
WINED3DFMT_D16_UNORM
,
WINED3DFMT_R16_UNORM
,
WINED3DFMT_R16_UINT
,
WINED3DFMT_R16_SNORM
,
WINED3DFMT_R16_SINT
,
WINED3DFMT_R8_TYPELESS
,
WINED3DFMT_R8_UNORM
,
WINED3DFMT_R8_UINT
,
WINED3DFMT_R8_SNORM
,
WINED3DFMT_R8_SINT
,
WINED3DFMT_A8_UNORM
,
WINED3DFMT_R1_UNORM
,
WINED3DFMT_R9G9B9E5_SHAREDEXP
,
WINED3DFMT_R8G8_B8G8_UNORM
,
WINED3DFMT_G8R8_G8B8_UNORM
,
WINED3DFMT_BC1_TYPELESS
,
WINED3DFMT_BC1_UNORM
,
WINED3DFMT_BC1_UNORM_SRGB
,
WINED3DFMT_BC2_TYPELESS
,
WINED3DFMT_BC2_UNORM
,
WINED3DFMT_BC2_UNORM_SRGB
,
WINED3DFMT_BC3_TYPELESS
,
WINED3DFMT_BC3_UNORM
,
WINED3DFMT_BC3_UNORM_SRGB
,
WINED3DFMT_BC4_TYPELESS
,
WINED3DFMT_BC4_UNORM
,
WINED3DFMT_BC4_SNORM
,
WINED3DFMT_BC5_TYPELESS
,
WINED3DFMT_BC5_UNORM
,
WINED3DFMT_BC5_SNORM
,
WINED3DFMT_B5G6R5_UNORM
,
WINED3DFMT_B5G5R5A1_UNORM
,
WINED3DFMT_B8G8R8A8_UNORM
,
WINED3DFMT_B8G8R8X8_UNORM
,
WINED3DFMT_FORCE_DWORD
=
0
xffffffff
}
WINED3DFORMAT
;
cpp_quote
(
"#define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \\"
)
cpp_quote
(
" ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \\"
)
...
...
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