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
8873478e
Commit
8873478e
authored
Jul 27, 2007
by
Roderick Colenbrander
Committed by
Alexandre Julliard
Jul 30, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wgl: Add WGL_NV_float_buffer and WGL_NV_texture_rectangle support.
parent
ae9119f8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
5 deletions
+111
-5
opengl.c
dlls/winex11.drv/opengl.c
+71
-5
wgl.h
include/wine/wgl.h
+40
-0
No files found.
dlls/winex11.drv/opengl.c
View file @
8873478e
...
...
@@ -759,9 +759,17 @@ static int ConvertAttribWGLtoGLX(const int* iWGLAttr, int* oGLXAttr, Wine_GLPBuf
}
}
break
;
case
WGL_FLOAT_COMPONENTS_NV
:
pop
=
iWGLAttr
[
++
cur
];
PUSH2
(
oGLXAttr
,
GLX_FLOAT_COMPONENTS_NV
,
pop
);
TRACE
(
"pAttr[%d] = GLX_FLOAT_COMPONENTS_NV: %x
\n
"
,
cur
,
pop
);
break
;
case
WGL_BIND_TO_TEXTURE_RGB_ARB
:
case
WGL_BIND_TO_TEXTURE_RGBA_ARB
:
case
WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV
:
case
WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV
:
case
WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV
:
case
WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV
:
pop
=
iWGLAttr
[
++
cur
];
/** cannot be converted, see direct handling on
* - wglGetPixelFormatAttribivARB
...
...
@@ -2023,7 +2031,22 @@ static HPBUFFERARB WINAPI X11DRV_wglCreatePbufferARB(HDC hdc, int iPixelFormat,
case
WGL_TEXTURE_RGBA_ARB
:
object
->
use_render_texture
=
GL_RGBA
;
break
;
/* WGL_FLOAT_COMPONENTS_NV */
case
WGL_TEXTURE_FLOAT_R_NV
:
object
->
use_render_texture
=
GL_FLOAT_R_NV
;
break
;
case
WGL_TEXTURE_FLOAT_RG_NV
:
object
->
use_render_texture
=
GL_FLOAT_RG_NV
;
break
;
case
WGL_TEXTURE_FLOAT_RGB_NV
:
object
->
use_render_texture
=
GL_FLOAT_RGB_NV
;
break
;
case
WGL_TEXTURE_FLOAT_RGBA_NV
:
object
->
use_render_texture
=
GL_FLOAT_RGBA_NV
;
break
;
default
:
ERR
(
"Unknown texture format: %x
\n
"
,
attr_v
);
SetLastError
(
ERROR_INVALID_DATA
);
goto
create_failed
;
}
...
...
@@ -2080,7 +2103,13 @@ static HPBUFFERARB WINAPI X11DRV_wglCreatePbufferARB(HDC hdc, int iPixelFormat,
object
->
texture_bind_target
=
GL_TEXTURE_2D
;
break
;
}
case
WGL_TEXTURE_RECTANGLE_NV
:
{
object
->
texture_target
=
GL_TEXTURE_RECTANGLE_NV
;
object
->
texture_bind_target
=
GL_TEXTURE_BINDING_RECTANGLE_NV
;
break
;
}
default
:
ERR
(
"Unknown texture target: %x
\n
"
,
attr_v
);
SetLastError
(
ERROR_INVALID_DATA
);
goto
create_failed
;
}
...
...
@@ -2212,10 +2241,28 @@ static GLboolean WINAPI X11DRV_wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAtt
SetLastError
(
ERROR_INVALID_HANDLE
);
return
GL_FALSE
;
}
if
(
GL_RGBA
==
object
->
use_render_texture
)
{
*
piValue
=
WGL_TEXTURE_RGBA_ARB
;
}
else
{
*
piValue
=
WGL_TEXTURE_RGB_ARB
;
switch
(
object
->
use_render_texture
)
{
case
GL_RGB
:
*
piValue
=
WGL_TEXTURE_RGB_ARB
;
break
;
case
GL_RGBA
:
*
piValue
=
WGL_TEXTURE_RGBA_ARB
;
break
;
/* WGL_FLOAT_COMPONENTS_NV */
case
GL_FLOAT_R_NV
:
*
piValue
=
WGL_TEXTURE_FLOAT_R_NV
;
break
;
case
GL_FLOAT_RG_NV
:
*
piValue
=
WGL_TEXTURE_FLOAT_RG_NV
;
break
;
case
GL_FLOAT_RGB_NV
:
*
piValue
=
WGL_TEXTURE_FLOAT_RGB_NV
;
break
;
case
GL_FLOAT_RGBA_NV
:
*
piValue
=
WGL_TEXTURE_FLOAT_RGBA_NV
;
break
;
default
:
ERR
(
"Unknown texture format: %x
\n
"
,
object
->
use_render_texture
);
}
}
}
...
...
@@ -2245,6 +2292,7 @@ static GLboolean WINAPI X11DRV_wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAtt
case
GL_TEXTURE_1D
:
*
piValue
=
WGL_TEXTURE_1D_ARB
;
break
;
case
GL_TEXTURE_2D
:
*
piValue
=
WGL_TEXTURE_2D_ARB
;
break
;
case
GL_TEXTURE_CUBE_MAP
:
*
piValue
=
WGL_TEXTURE_CUBE_MAP_ARB
;
break
;
case
GL_TEXTURE_RECTANGLE_NV
:
*
piValue
=
WGL_TEXTURE_RECTANGLE_NV
;
break
;
}
}
}
...
...
@@ -2792,6 +2840,14 @@ static BOOL glxRequireExtension(const char *requiredExtension)
return
TRUE
;
}
static
void
register_extension_string
(
const
char
*
ext
)
{
strcat
(
WineGLInfo
.
wglExtensions
,
" "
);
strcat
(
WineGLInfo
.
wglExtensions
,
ext
);
TRACE
(
"'%s'
\n
"
,
ext
);
}
static
BOOL
register_extension
(
const
WineGLExtension
*
ext
)
{
int
i
;
...
...
@@ -2944,8 +3000,18 @@ static void X11DRV_WineGL_LoadExtensions(void)
if
(
glxRequireExtension
(
"GLX_ATI_render_texture"
)
||
glxRequireExtension
(
"GLX_ARB_render_texture"
)
||
(
glxRequireVersion
(
3
)
&&
glxRequireExtension
(
"GLX_SGIX_pbuffer"
)
&&
use_render_texture_emulation
))
{
register_extension
(
&
WGL_ARB_render_texture
);
/* The WGL version of GLX_NV_float_buffer requires render_texture */
if
(
glxRequireExtension
(
"GLX_NV_float_buffer"
))
register_extension_string
(
"WGL_NV_float_buffer"
);
/* Again there's no GLX equivalent for this extension, so depend on the required GL extension */
if
(
strstr
(
WineGLInfo
.
glExtensions
,
"GL_NV_texture_rectangle"
)
!=
NULL
)
register_extension_string
(
"WGL_NV_texture_rectangle"
);
}
/* EXT Extensions */
register_extension
(
&
WGL_EXT_extensions_string
);
...
...
include/wine/wgl.h
View file @
8873478e
...
...
@@ -139,6 +139,44 @@
#define WGL_AUX8_ARB 0x208F
#define WGL_AUX9_ARB 0x2090
/** WGL_NV_render_texture_rectangle */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
/** WGL_NV_render_depth_texture */
#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
#define WGL_DEPTH_COMPONENT_NV 0x20A7
/** WGL_NV_float_buffer */
#define WGL_FLOAT_COMPONENTS_NV 0x20B0
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
/** GL_NV_float_buffer */
#define GL_FLOAT_R_NV 0x8880
#define GL_FLOAT_RG_NV 0x8881
#define GL_FLOAT_RGB_NV 0x8882
#define GL_FLOAT_RGBA_NV 0x8883
#define GL_FLOAT_R16_NV 0x8884
#define GL_FLOAT_R32_NV 0x8885
#define GL_FLOAT_RG16_NV 0x8886
#define GL_FLOAT_RG32_NV 0x8887
#define GL_FLOAT_RGB16_NV 0x8888
#define GL_FLOAT_RGB32_NV 0x8889
#define GL_FLOAT_RGBA16_NV 0x888A
#define GL_FLOAT_RGBA32_NV 0x888B
#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
#define GL_FLOAT_RGBA_MODE_NV 0x888E
/**
* WGL_ATI_pixel_format_float / WGL_ARB_color_buffer_float
*/
...
...
@@ -189,3 +227,5 @@
#define GLX_AUX9_ATI 0x9820
#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
/** GLX_NV_float_buffer */
#define GLX_FLOAT_COMPONENTS_NV 0x20B0
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