openglcontrol: red,green,blue bits for windows

git-svn-id: trunk@40252 -
This commit is contained in:
mattias 2013-02-10 14:32:30 +00:00
parent 99777d6c19
commit ee92fdee19
2 changed files with 18 additions and 7 deletions

View File

@ -29,7 +29,8 @@ function LOpenGLMakeCurrent(Handle: HWND): boolean;
function LOpenGLCreateContext(AWinControl: TWinControl; function LOpenGLCreateContext(AWinControl: TWinControl;
WSPrivate: TWSPrivateClass; SharedControl: TWinControl; WSPrivate: TWSPrivateClass; SharedControl: TWinControl;
DoubleBuffered, RGBA: boolean; DoubleBuffered, RGBA: boolean;
const MultiSampling, AlphaBits, DepthBits, StencilBits, AUXBuffers: Cardinal; const RedBits, GreenBits, BlueBits,
MultiSampling, AlphaBits, DepthBits, StencilBits, AUXBuffers: Cardinal;
const AParams: TCreateParams): HWND; const AParams: TCreateParams): HWND;
procedure LOpenGLDestroyContextInfo(AWinControl: TWinControl); procedure LOpenGLDestroyContextInfo(AWinControl: TWinControl);
@ -353,7 +354,8 @@ begin
end; end;
function LGlMsCreateOpenGLContextAttrList(DoubleBuffered: boolean; RGBA: boolean; function LGlMsCreateOpenGLContextAttrList(DoubleBuffered: boolean; RGBA: boolean;
const MultiSampling, AlphaBits, DepthBits, StencilBits, AUXBuffers: Cardinal): PInteger; const RedBits, GreenBits, BlueBits, MultiSampling, AlphaBits, DepthBits,
StencilBits, AUXBuffers: Cardinal): PInteger;
var var
p: integer; p: integer;
@ -377,7 +379,10 @@ var
else else
Add(WGL_TYPE_COLORINDEX_ARB); Add(WGL_TYPE_COLORINDEX_ARB);
Add(WGL_COLOR_BITS_ARB); Add(24); Add(WGL_RED_BITS_ARB); Add(RedBits);
Add(WGL_GREEN_BITS_ARB); Add(GreenBits);
Add(WGL_BLUE_BITS_ARB); Add(BlueBits);
Add(WGL_COLOR_BITS_ARB); Add(RedBits+GreenBits+BlueBits);
Add(WGL_ALPHA_BITS_ARB); Add(AlphaBits); Add(WGL_ALPHA_BITS_ARB); Add(AlphaBits);
Add(WGL_DEPTH_BITS_ARB); Add(DepthBits); Add(WGL_DEPTH_BITS_ARB); Add(DepthBits);
Add(WGL_STENCIL_BITS_ARB); Add(StencilBits); Add(WGL_STENCIL_BITS_ARB); Add(StencilBits);
@ -402,7 +407,8 @@ end;
function LOpenGLCreateContext(AWinControl: TWinControl; function LOpenGLCreateContext(AWinControl: TWinControl;
WSPrivate: TWSPrivateClass; SharedControl: TWinControl; WSPrivate: TWSPrivateClass; SharedControl: TWinControl;
DoubleBuffered, RGBA: boolean; DoubleBuffered, RGBA: boolean;
const MultiSampling, AlphaBits, DepthBits, StencilBits, AUXBuffers: Cardinal; const RedBits, GreenBits, BlueBits,
MultiSampling, AlphaBits, DepthBits, StencilBits, AUXBuffers: Cardinal;
const AParams: TCreateParams): HWND; const AParams: TCreateParams): HWND;
var var
Params: TCreateWindowExParams; Params: TCreateWindowExParams;
@ -449,7 +455,10 @@ begin
iPixelType:=PFD_TYPE_RGBA iPixelType:=PFD_TYPE_RGBA
else else
iPixelType:=PFD_TYPE_COLORINDEX; iPixelType:=PFD_TYPE_COLORINDEX;
cColorBits:=24; // color depth cColorBits:=RedBits+GreenBits+BlueBits; // color depth
cRedBits:=RedBits;
cGreenBits:=GreenBits;
cBlueBits:=BlueBits;
cAlphaBits:=AlphaBits; cAlphaBits:=AlphaBits;
cDepthBits:=DepthBits; // Z-Buffer cDepthBits:=DepthBits; // Z-Buffer
cStencilBits:=StencilBits; cStencilBits:=StencilBits;
@ -462,7 +471,8 @@ begin
and Assigned(wglChoosePixelFormatARB) then and Assigned(wglChoosePixelFormatARB) then
begin begin
VisualAttrList := LGlMsCreateOpenGLContextAttrList(DoubleBuffered, RGBA, VisualAttrList := LGlMsCreateOpenGLContextAttrList(DoubleBuffered, RGBA,
MultiSampling, AlphaBits, DepthBits, StencilBits, AUXBuffers); RedBits, GreenBits, BlueBits, MultiSampling, AlphaBits, DepthBits,
StencilBits, AUXBuffers);
try try
FillChar(VisualAttrFloat, SizeOf(VisualAttrFloat), 0); FillChar(VisualAttrFloat, SizeOf(VisualAttrFloat), 0);
MsInitSuccess := wglChoosePixelFormatARB(Info^.DC, PGLint(VisualAttrList), MsInitSuccess := wglChoosePixelFormatARB(Info^.DC, PGLint(VisualAttrList),

View File

@ -77,6 +77,7 @@ uses
{$ENDIF} {$ENDIF}
{$IFDEF UseWin32WGL} {$IFDEF UseWin32WGL}
GLWin32WGLContext; GLWin32WGLContext;
{$DEFINE HasRGBBits}
{$ENDIF} {$ENDIF}
{$IFDEF UseQTGLX} {$IFDEF UseQTGLX}
GLQTContext; GLQTContext;