mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-05 19:49:29 +00:00
wined3d: Add support for R32F and R16F texture formats.
This commit is contained in:
parent
de54843d7b
commit
2e1cf4d948
|
@ -1650,8 +1650,10 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
||||||
BOOL half_pixel_support = GL_SUPPORT(ARB_HALF_FLOAT_PIXEL);
|
BOOL half_pixel_support = GL_SUPPORT(ARB_HALF_FLOAT_PIXEL);
|
||||||
|
|
||||||
switch (CheckFormat) {
|
switch (CheckFormat) {
|
||||||
|
case D3DFMT_R16F:
|
||||||
case D3DFMT_A16B16G16R16F:
|
case D3DFMT_A16B16G16R16F:
|
||||||
if (!half_pixel_support) break;
|
if (!half_pixel_support) break;
|
||||||
|
case D3DFMT_R32F:
|
||||||
case D3DFMT_A32B32G32R32F:
|
case D3DFMT_A32B32G32R32F:
|
||||||
TRACE_(d3d_caps)("[OK]\n");
|
TRACE_(d3d_caps)("[OK]\n");
|
||||||
return WINED3D_OK;
|
return WINED3D_OK;
|
||||||
|
@ -1748,9 +1750,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
|
||||||
/*****
|
/*****
|
||||||
* Float formats: Not supported right now
|
* Float formats: Not supported right now
|
||||||
*/
|
*/
|
||||||
case WINED3DFMT_R16F:
|
|
||||||
case WINED3DFMT_G16R16F:
|
case WINED3DFMT_G16R16F:
|
||||||
case WINED3DFMT_R32F:
|
|
||||||
case WINED3DFMT_G32R32F:
|
case WINED3DFMT_G32R32F:
|
||||||
case WINED3DFMT_CxV8U8:
|
case WINED3DFMT_CxV8U8:
|
||||||
TRACE_(d3d_caps)("[FAILED]\n"); /* Enable when implemented */
|
TRACE_(d3d_caps)("[FAILED]\n"); /* Enable when implemented */
|
||||||
|
|
|
@ -47,13 +47,13 @@ static const PixelFormatDesc formats[] = {
|
||||||
{WINED3DFMT_G8R8_G8B8 ,0x0 ,0x0 ,0x0 ,0x0 ,1/*?*/ ,TRUE ,0 ,0 ,0 },
|
{WINED3DFMT_G8R8_G8B8 ,0x0 ,0x0 ,0x0 ,0x0 ,1/*?*/ ,TRUE ,0 ,0 ,0 },
|
||||||
{WINED3DFMT_R8G8_B8G8 ,0x0 ,0x0 ,0x0 ,0x0 ,1/*?*/ ,TRUE ,0 ,0 ,0 },
|
{WINED3DFMT_R8G8_B8G8 ,0x0 ,0x0 ,0x0 ,0x0 ,1/*?*/ ,TRUE ,0 ,0 ,0 },
|
||||||
/* IEEE formats */
|
/* IEEE formats */
|
||||||
{WINED3DFMT_R32F ,0x0 ,0x0 ,0x0 ,0x0 ,4 ,FALSE ,0 ,0 ,0 },
|
{WINED3DFMT_R32F ,0x0 ,0x0 ,0x0 ,0x0 ,4 ,FALSE ,GL_RGB32F_ARB ,GL_RED ,GL_FLOAT },
|
||||||
{WINED3DFMT_G32R32F ,0x0 ,0x0 ,0x0 ,0x0 ,8 ,FALSE ,0 ,0 ,0 },
|
{WINED3DFMT_G32R32F ,0x0 ,0x0 ,0x0 ,0x0 ,8 ,FALSE ,0 ,0 ,0 },
|
||||||
{WINED3DFMT_A32B32G32R32F,0x0 ,0x0 ,0x0 ,0x0 ,16 ,FALSE ,GL_RGBA32F_ARB ,GL_RGBA ,GL_FLOAT },
|
{WINED3DFMT_A32B32G32R32F,0x0 ,0x0 ,0x0 ,0x0 ,16 ,FALSE ,GL_RGBA32F_ARB ,GL_RGBA ,GL_FLOAT },
|
||||||
/* Hmm? */
|
/* Hmm? */
|
||||||
{WINED3DFMT_CxV8U8 ,0x0 ,0x0 ,0x0 ,0x0 ,2 ,FALSE ,0 ,0 ,0 },
|
{WINED3DFMT_CxV8U8 ,0x0 ,0x0 ,0x0 ,0x0 ,2 ,FALSE ,0 ,0 ,0 },
|
||||||
/* Float */
|
/* Float */
|
||||||
{WINED3DFMT_R16F ,0x0 ,0x0 ,0x0 ,0x0 ,2 ,FALSE ,0 ,0 ,0 },
|
{WINED3DFMT_R16F ,0x0 ,0x0 ,0x0 ,0x0 ,2 ,FALSE ,GL_RGB16F_ARB ,GL_RED ,GL_HALF_FLOAT_ARB },
|
||||||
{WINED3DFMT_G16R16F ,0x0 ,0x0 ,0x0 ,0x0 ,4 ,FALSE ,0 ,0 ,0 },
|
{WINED3DFMT_G16R16F ,0x0 ,0x0 ,0x0 ,0x0 ,4 ,FALSE ,0 ,0 ,0 },
|
||||||
{WINED3DFMT_A16B16G16R16F,0x0 ,0x0 ,0x0 ,0x0 ,8 ,FALSE ,GL_RGBA16F_ARB ,GL_RGBA ,GL_HALF_FLOAT_ARB },
|
{WINED3DFMT_A16B16G16R16F,0x0 ,0x0 ,0x0 ,0x0 ,8 ,FALSE ,GL_RGBA16F_ARB ,GL_RGBA ,GL_HALF_FLOAT_ARB },
|
||||||
/* Palettized formats */
|
/* Palettized formats */
|
||||||
|
|
|
@ -477,7 +477,9 @@ typedef void (APIENTRY * PGLFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint leve
|
||||||
#ifndef GL_ARB_texture_float
|
#ifndef GL_ARB_texture_float
|
||||||
#define GL_ARB_texture_float 1
|
#define GL_ARB_texture_float 1
|
||||||
#define GL_RGBA32F_ARB 0x8814
|
#define GL_RGBA32F_ARB 0x8814
|
||||||
|
#define GL_RGB32F_ARB 0x8815
|
||||||
#define GL_RGBA16F_ARB 0x881A
|
#define GL_RGBA16F_ARB 0x881A
|
||||||
|
#define GL_RGB16F_ARB 0x881B
|
||||||
#endif
|
#endif
|
||||||
/* GL_ARB_half_float_pixel */
|
/* GL_ARB_half_float_pixel */
|
||||||
#ifndef GL_ARB_half_float_pixel
|
#ifndef GL_ARB_half_float_pixel
|
||||||
|
|
Loading…
Reference in a new issue