if hdc<>null then
ReleaseDC(Handle,hdc);
end;
五、OPENGL 基本图形的绘制
1、图形的颜色
注意底色的设置,颜色设置通常与像素描述变量有关,即与 TPixelFormatDescriptor 定义中的 iPixelType 成员有关。
iPixelType:=PFD_TYPE_COLORINDEX;
则只能使用 glIndexd,glIndexf,glIndexi,glIndexs,glIndexv,glIndexfv,glIndexiv,glIndexsv 过程设置图形颜色。
iPixelType:=PFD_TYPE_RGBA;
则只能使用 glColor3b,glColor3f,glColor4b,glColor4f,glColor4fv 设置图形颜色。
A
图形底色:
屏幕与窗口的颜色,即颜色缓冲区的颜色。改变图形底色首先应使用 glClearColor 过程设定底色,然后
使用 glClear 过程以这种底色刷新窗口和屏幕。
procedure glClearColor(red:GLClampf,green:GLClampf,blue:GLClampf,alpha:GLClampf);
procedure glClear(mask:GLBitField);
red,green,blue,alpha 是准备设置的底色,它们的取值是 0 到 1。mask 是刷新底色的方式。
例:将绘声绘色图窗口设置为绿色
glClearColor(0,1,0,1);
glClear(GL_COLOR_BUFFER_BIT);
mask 的取值和意义:
GL_COLOR_BUFFER_BIT 设置当前的颜色缓冲
GL_DEPTH_BUFFER_BIT 设置当前的深度缓冲
GL_ACCUM_BUFFER_BIT 设置当前的积累缓冲
GL_STENCIL_BUFFER_BIT 设置当前的 STENCIL(模板)缓冲
绘图窗口设置为灰色
glClearColor(0.3,0.3,0.3,1);
glClear(GL_COLOR_BUFFER_BIT);
B
图形颜色
使用 glClear3f 与 glClear4f 可以设置图形的绘制颜色。若用三个参数,则分别指设置红、蓝、绿三色光。若用四个参
数,则第四个表示 RGBA 值。
例设置当前的绘图颜色为蓝色:
glColor3f(0,0,1);
设置绘图颜色为白色:
glColor3f(1,1,1);
2、简单图形的绘制
在 glBegin 与 glEnd 过程之间绘制简单图形,如点、线、多边形等。
glBegin(mode:GLenum);{绘制过程}glEnd;
mode 的取值:
GL_POINTS 画多个点
GL_LINES 画多条线,每两点绘制一条直线
GL_LINE_STRIP 绘制折线
GL_LINE_LOOP 绘制首尾相接的封闭多边形
GL_TRIANGLES 绘制三角形
GL_TRIANGLE_STRIP 绘制三边形,每三个点绘制绘制一个三边形
GL_TRIANGLE_FAN 绘制三角形