diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 58a27815185..2e31f3381b4 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -47,6 +47,7 @@ static const struct { {"GL_APPLE_fence", APPLE_FENCE, 0 }, {"GL_APPLE_flush_render", APPLE_FLUSH_RENDER, 0 }, {"GL_APPLE_ycbcr_422", APPLE_YCBCR_422, 0 }, + {"GL_APPLE_float_pixels", APPLE_FLOAT_PIXELS, 0 }, /* ATI */ {"GL_ATI_separate_stencil", ATI_SEPARATE_STENCIL, 0 }, @@ -784,6 +785,25 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) { */ gl_info->supported[NV_FENCE] = FALSE; } + if (gl_info->supported[APPLE_FLOAT_PIXELS]) { + /* GL_APPLE_float_pixels == GL_ARB_texture_float + GL_ARB_half_float_pixel + * + * The enums are the same: + * GL_RGBA16F_ARB = GL_RGBA_FLOAT16_APPLE = 0x881A + * GL_RGB16F_ARB = GL_RGB_FLOAT16_APPLE = 0x881B + * GL_RGBA32F_ARB = GL_RGBA_FLOAT32_APPLE = 0x8814 + * GL_RGB32F_ARB = GL_RGB_FLOAT32_APPLE = 0x8815 + * GL_HALF_FLOAT_ARB = GL_HALF_APPLE = 0x140B + */ + if(!gl_info->supported[ARB_TEXTURE_FLOAT]) { + TRACE_(d3d_caps)(" IMPLIED: GL_ARB_texture_float support(from GL_APPLE_float_pixels\n"); + gl_info->supported[ARB_TEXTURE_FLOAT] = TRUE; + } + if(!gl_info->supported[ARB_HALF_FLOAT_PIXEL]) { + TRACE_(d3d_caps)(" IMPLIED: GL_ARB_half_float_pixel support(from GL_APPLE_float_pixels\n"); + gl_info->supported[ARB_HALF_FLOAT_PIXEL] = TRUE; + } + } if (gl_info->supported[ARB_TEXTURE_CUBE_MAP]) { TRACE_(d3d_caps)(" IMPLIED: NVIDIA (NV) Texture Gen Reflection support\n"); gl_info->supported[NV_TEXGEN_REFLECTION] = TRUE; diff --git a/include/wine/wined3d_gl.h b/include/wine/wined3d_gl.h index bb46124f9e1..66bfad8ed72 100644 --- a/include/wine/wined3d_gl.h +++ b/include/wine/wined3d_gl.h @@ -2887,6 +2887,25 @@ typedef void (WINE_GLAPI * PGLFNFINISHRENDERAPPLEPROC) (void); #define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 #endif +/* GL_APPLE_float_pixels */ +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels +#define GL_HALF_APPLE 0x140B +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#endif + /* GL_VERSION_2_0 */ #ifndef GL_VERSION_2_0 #define GL_VERSION_2_0 1 @@ -3251,6 +3270,7 @@ typedef enum _GL_SupportedExt { APPLE_CLIENT_STORAGE, APPLE_FLUSH_RENDER, APPLE_YCBCR_422, + APPLE_FLOAT_PIXELS, /* SGI */ SGI_VIDEO_SYNC, SGIS_GENERATE_MIPMAP,