mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-07 02:50:35 +01:00
openglcontrol: red,green,blue bits for windows
git-svn-id: trunk@40252 -
This commit is contained in:
parent
99777d6c19
commit
ee92fdee19
@ -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),
|
||||||
|
|||||||
@ -77,6 +77,7 @@ uses
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF UseWin32WGL}
|
{$IFDEF UseWin32WGL}
|
||||||
GLWin32WGLContext;
|
GLWin32WGLContext;
|
||||||
|
{$DEFINE HasRGBBits}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF UseQTGLX}
|
{$IFDEF UseQTGLX}
|
||||||
GLQTContext;
|
GLQTContext;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user