全球彩票平台_全球彩票注册平台|官网下载地址

热门关键词: 全球彩票平台,全球彩票注册平台,全球彩官网下载地址

第二十课

Delphi下OpenGL2d绘图(05)-画图片Bmp,

一、前言

 

找了众多材料,要画图片要先拍卖一下,须要引用其余单元,Delphi中没带,须求其他下载Gl.pas。看英特网说是自带的OpenGl单元封装的是1.0版的,有此函数未证明。互连网能够找到Gl.pas单元。其它部供给要贰个Glaux.pas单元与glaux.dll,据说是帮助库。在本文最终会提供下载。多谢全数小编提供的素材。

 

二、流程

 

  摄影图片必要以下多少个流程。Window本人的绘图是以位图为根基的,png,jpg等,壁画时,能够转为bmp再画。

 

  1.加载bmp图形:auxDIBImageLoadA或别的函数

 

  2.更改为纹理:glGenTextures -> glBindTexture -> glTexImage2D, glTexParameteri用于安装相关参数

 

  3.绘制纹理:glBindTexture -> glBegin(GL_QUADS) -> glTexCoord2f -> glVertex2f -> glEnd

 

三、利用glDrawPixels函数绘图

 

glDrawPixels共有5个参数

width: 表图像的宽度

height: 表图像的惊人

format:表图像的数额存款和储蓄格式

atype: 未知 

pixels: DIB数据的指针

复制代码

procedure TForm1.Draw;

var

  Bmp: TBitmap;

begin

  Bmp := TBitmap.Create;

  Bmp.LoadFromFile(ExtractFilePath(ParamStr(0)) '1.bmp');

  // 清空缓冲区

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

  // TBitmap的图像数据在内部存储器中是按行倒序三番五次存放的,通过TBitmap.ScanLine[TBitmap.Height-1]能够博得首地址即图像缓冲区地址

  // bmp图片的水彩是按b g r存款和储蓄的,所以要选 GL_BGR_EXT做为参数

  glDrawPixels(Bmp.Width, Bmp.Height, GL_BGR_EXT, GL_UNSIGNED_BYTE, Bmp.ScanLine[Bmp.Height - 1]);

  SwapBuffers(FDC);

  Bmp.Free;

end;

复制代码

用以上办法绘制图片不须求启用纹理映射,能够透过glPixelZoom函数来缩放图片,显示地点在窗口的左下角。权且不知情哪些转移图像地点。

 

三、使用纹理绘图

 

本人想按制图片的显得地方与推广收缩,如何做?能够用以下措施。

 

1.按流程,大家先把图纸加载到程序里,获取相关的图片消息。

第二十课。 

将图纸加载到纹理中,有两种艺术,英特网有人写了,建议参考学习:

 

在delphi中加载一张位图是很简短的,能够透过以下格局加载:

 

1).通过帮忙库的auxDIBImageLoadA函数加载图片,重临是贰个PTAUX_福特ExplorerGBImageRec数据指针,DIB数据格式为ENVISIONGB。笔者没找到方法在利用完释放内部存款和储蓄器的办法。

 

  // 翼虎GB数据的结构体

  TAUX_RGBImageRec = record

    sizeX, sizeY: GLint;

    data: pointer;

  end;

  PTAUX_RGBImageRec =  ^TAUX_RGBImageRec;

var

  p: PTAUX_RGBImageRec;

begin

  p := auxDIBImageLoadA(PAnsiChar(ExtractFilePath(ParamStr(0)) '1.bmp'));

  // p 怎么释放? Dispose与Freemem都无法儿操作这么些指针

end;

2).通过TBitmap.LoadFromFile加载图片。Delphi自带,从作用上相比,与auxDIBImageLoadA性能是一律的,但DIB数据格式为BGPRADO,DIB指针为TBitmap.ScanLine[Bmp.Height

  • 1]

 

复制代码

var

  Bmp: TBitmap;

begin

  Bmp := TBitmap.Create;

  TBitmap.LoadFromFile(ExtractFilePath(ParamStr(0)) '1.bmp');

  // do something

 

  // 用完释放

  Bmp.Free;

end;

复制代码

2.创办纹理,个中的glGenTextures与glBindTexture,在Gl.pas中。

 

复制代码

  // 创造纹理区域

  glGenTextures(1, @texture);

  // 绑定纹理区域

  glBindTexture(GL_TEXTURE_2D, texture);

  // 使用位图创设图像纹理

  glTexImage2D(

    GL_TEXTURE_2D,            // 纹理是贰个2D纹理 GL_TEXTURE_2D

    0,                        // 图像的详实程度 暗中同意 0

    3,                        // 数据的成分数。因为图像是由红,绿,蓝三种组成 私下认可3

    Bmp.Width,                // 纹理的小幅度

    Bmp.Height,               // 纹理的中度

    0,                        // 边框的值 默许 0

    GL_BGR_EXT,               // 数据格式 bmp使用 bgr

    GL_UNSIGNED_BYTE,         // 组成图像的数据是无符号字节类型的

    Bmp.ScanLine[Bmp.Height - 1] // DIB数据指针

  );

全球彩票注册平台,  // 下面两行是让opengl在拓展原始的纹路大(GL_TEXTURE_MAG_FILTELX570)或减弱原始纹理(GL_TEXTURE_MIN_FILTE景逸SUV)时OpenGL选用的滤波情势。

  // GL_LINEA本田CR-V使用线性滤波,能够把图纸管理处平滑,但必要愈来愈多的内存与CPU

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAPRADO);  // 线形滤波

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAEscort);  // 线形滤波

复制代码

3.绘制纹理

 

绘图纹理从前,必须通报OpenGL开启纹理映射glEnable(GL_TEXTURE_2D)。开启后,非纹路的绘图将不起成效。用完记得关闭就能够了。

 

复制代码

  // 以下是绘图,利用二个四边形,绘制图片

  

  // 启用纹理映射

  if glIsEnabled(GL_TEXTURE_2D) = 0 then

    glEnable(GL_TEXTURE_2D);

  // 清空缓冲区

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);  

 

  l := 10;

  t := 10;

  w := 200; // 放大为200*200的图片

 

  // 选用纹理 假若场景中采取多个纹理,不可能在glBegin() 和 glEnd() 之间绑定纹理

  glBindTexture(GL_TEXTURE_2D, texture);

  glBegin(GL_QUADS);

  // glTexCoord2f 的第一个参数是X坐标。

  // 0.0是纹理的侧面。 0.5是纹理的中心, 1.0是纹理的出手。

  // glTexCoord2f 的第一个参数是Y坐标。

  // 0.0是纹理的尾部。 0.5是纹理的中央, 1.0是纹理的顶端。

  glTexCoord2f(0, 1);

  glVertex2f(l, t);

  glTexCoord2f(1, 1);

  glVertex2f(l w, t);

  glTexCoord2f(1, 0);

  glVertex2f(l w, t w);

  glTexCoord2f(0, 0);

  glVertex2f(l, t w);

  glEnd();

复制代码

如上的绘图就终止了,以下是Draw中总体的代码,能够不援用协助库Glaux.pas

 

复制代码

procedure TForm1.Draw;

var

  Bmp: TBitmap;

  texture: GLuint;

  l, t, w: Integer;

begin

  Bmp := TBitmap.Create;

  Bmp.LoadFromFile(ExtractFilePath(ParamStr(0)) '1.bmp');

  // 成立纹理区域

  glGenTextures(1, @texture);

  // 绑定纹理区域

  glBindTexture(GL_TEXTURE_2D, texture);

  // 使用位图创立图像纹理

  glTexImage2D(

    GL_TEXTURE_2D,            // 纹理是多少个2D纹理 GL_TEXTURE_2D

    0,                        // 图像的事无巨细程度 暗中认可 0

    3,                        // 数据的成分数。因为图疑似由红,绿,蓝两种组成 私下认可3

    Bmp.Width,                // 纹理的肥瘦

    Bmp.Height,               // 纹理的中度

    0,                        // 边框的值 暗中同意 0

    GL_BGR_EXT,               // 数据格式 bmp使用 bgr

    GL_UNSIGNED_BYTE,         // 组成图像的多少是无符号字节类型的

    Bmp.ScanLine[Bmp.Height - 1] // DIB数据指针

  );

  // 下边两行是让opengl在拓展原始的纹理大(GL_TEXTURE_MAG_FILTE路虎极光)或降低原始纹理(GL_TEXTURE_MIN_FILTEXC90)时OpenGL选用的滤波情势。

  // GL_LINEA猎豹CS6使用线性滤波,能够把图纸管理处平滑,但需求越来越多的内部存款和储蓄器与CPU

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEA瑞虎);  // 线形滤波

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEA君越);  // 线形滤波

 

  // 以下是绘图,利用一个四边形,绘制图片

  

  // 启用纹理映射

  if glIsEnabled(GL_TEXTURE_2D) = 0 then

    glEnable(GL_TEXTURE_2D);

  // 清空缓冲区

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);  

 

  l := 10;

  t := 10;

  w := 200; // 放大为200*200的图片

 

  // 选取纹理 要是场景中应用七个纹理,不可能在glBegin() 和 glEnd() 之间绑定纹理

  glBindTexture(GL_TEXTURE_2D, texture);

  glBegin(GL_QUADS);

  // glTexCoord2f 的第多个参数是X坐标。

  // 0.0是纹理的侧边。 0.5是纹理的正中, 1.0是纹理的左侧。

  // glTexCoord2f 的第1个参数是Y坐标。

  // 0.0是纹理的最底层。 0.5是纹理的正中, 1.0是纹理的最上部。

  glTexCoord2f(0, 1);

  glVertex2f(l, t);

  glTexCoord2f(1, 1);

  glVertex2f(l w, t);

  glTexCoord2f(1, 0);

  glVertex2f(l w, t w);

  glTexCoord2f(0, 0);

  glVertex2f(l, t w);

  glEnd();

 

  Bmp.Free;

  SwapBuffers(FDC);

end;

一、前言 找了十分多素材,要画图纸要先管理一下,须求援用别的单元,Delphi中没带,须求别的下载Gl.pas。...

Delphi下OpenGL2d绘图(05)-画图片Bmp

一、前言

 

找了数不清材质,要画图纸要先管理一下,必要援引别的单元,Delphi中没带,需求别的下载Gl.pas。看英特网说是自带的OpenGl单元封装的是1.0版的,有此函数未表明。英特网能够找到Gl.pas单元。别的索要多个Glaux.pas单元与glaux.dll,据说是扶助库。在本文最后会提供下载。感激全部小编提供的材质。

 

二、流程

 

  水墨画图片须求以下多少个流程。Window本人的绘图是以位图为根基的,png,jpg等,美术时,能够转为bmp再画。

 

  1.加载bmp图纸:auxDIBImageLoadA或其余函数

 

  2.转变为纹理:glGenTextures -> glBindTexture -> glTexImage2D, glTexParameteri用于安装相关参数

 

  3.制图纹理:glBindTexture -> glBegin(GL_QUADS) -> glTexCoord2f -> glVertex2f -> glEnd

 

三、利用glDrawPixels函数绘图

 

glDrawPixels共有5个参数

width: 表图像的大幅度

height: 表图像的高度

format:表图像的多少存款和储蓄格式

atype: 未知 

pixels: DIB数据的指针

复制代码

procedure TForm1.Draw;

var

  Bmp: TBitmap;

begin

  Bmp := TBitmap.Create;

  Bmp.LoadFromFile(ExtractFilePath(ParamStr(0)) '1.bmp');

  // 清空缓冲区

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

  // TBitmap的图像数据在内部存款和储蓄器中是按行倒序一而再存放的,通过TBitmap.ScanLine[TBitmap.Height-1]能够收获首地址即图像缓冲区地址

  // bmp图片的水彩是按b g r存储的,所以要选 GL_BGR_EXT做为参数

  glDrawPixels(Bmp.Width, Bmp.Height, GL_BGR_EXT, GL_UNSIGNED_BYTE, Bmp.ScanLine[Bmp.Height - 1]);

  SwapBuffers(FDC);

  Bmp.Free;

end;

复制代码

用上述措施绘制图片不要求启用纹理映射,能够经过glPixelZoom函数来缩放图片,显示地方在窗口的左下角。一时半刻不亮堂怎么样改动图像地方。

 

三、使用纹理绘图

 

自个儿想按制图片的显示地点与推广减少,如何是好?能够用以下办法。

 

1.按流程,大家先把图片加载到程序里,获取有关的图样音讯。

 

将图片加载到纹理中,有三种办法,英特网有人写了,建议参谋学习:

 

在delphi中加载一张位图是很轻松的,能够经过以下措施加载:

 

1).通过协助库的auxDIBImageLoadA函数加载图片,再次来到是一个PTAUX_牧马人GBImageRec数据指针,DIB数据格式为HighlanderGB。小编没找到办法在行使完释放内部存款和储蓄器的点子。

 

  // QashqaiGB数据的结构体

  TAUX_RGBImageRec = record

    sizeX, sizeY: GLint;

    data: pointer;

  end;

  PTAUX_RGBImageRec =  ^TAUX_RGBImageRec;

var

  p: PTAUX_RGBImageRec;

begin

  p := auxDIBImageLoadA(PAnsiChar(ExtractFilePath(ParamStr(0)) '1.bmp'));

  // p 怎么释放? Dispose与Freemem都力不可能支操作那么些指针

end;

2).通过TBitmap.LoadFromFile加载图片。Delphi自带,从功用上相比较,与auxDIBImageLoadA品质是一样的,但DIB数据格式为BGPRADO,DIB指针为TBitmap.ScanLine[Bmp.Height

  • 1]

 

复制代码

var

  Bmp: TBitmap;

begin

  Bmp := TBitmap.Create;

  TBitmap.LoadFromFile(ExtractFilePath(ParamStr(0)) '1.bmp');

  // do something

 

  // 用完释放

  Bmp.Free;

end;

复制代码

2.创办纹理,在那之中的glGenTextures与glBindTexture,在Gl.pas中。

 

复制代码

  // 创制纹理区域

  glGenTextures(1, @texture);

  // 绑定纹理区域

  glBindTexture(GL_TEXTURE_2D, texture);

  // 使用位图创设图像纹理

  glTexImage2D(

    GL_TEXTURE_2D,            // 纹理是一个2D纹理 GL_TEXTURE_2D

    0,                        // 图像的详尽程度 暗中认可 0

    3,                        // 数据的成分数。因为图疑似由红,绿,蓝三种组成 暗许3

    Bmp.Width,                // 纹理的小幅度

    Bmp.Height,               // 纹理的高度

    0,                        // 边框的值 暗中同意 0

    GL_BGR_EXT,               // 数据格式 bmp使用 bgr

    GL_UNSIGNED_BYTE,         // 组成图像的数目是无符号字节类型的

    Bmp.ScanLine[Bmp.Height - 1] // DIB数据指针

  );

  // 下边两行是让opengl在放大原始的纹路大(GL_TEXTURE_MAG_FILTE中华V)或减弱原始纹理(GL_TEXTURE_MIN_FILTE兰德Highlander)时OpenGL采纳的滤波方式。

  // GL_LINEA奇骏使用线性滤波,能够把图纸管理处平滑,但需求更加多的内部存款和储蓄器与CPU

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEA陆风X8);  // 线形滤波

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEA奔驰G级);  // 线形滤波

复制代码

3.绘制纹理

 

绘图纹理以前,必需通报OpenGL开启纹理映射glEnable(GL_TEXTURE_2D)。开启后,非纹路的绘图将不起功能。用完记得关闭就能够了。

 

复制代码

  // 以下是绘图,利用二个四边形,绘制图片

  

  // 启用纹理映射

  if glIsEnabled(GL_TEXTURE_2D) = 0 then

    glEnable(GL_TEXTURE_2D);

  // 清空缓冲区

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);  

 

  l := 10;

  t := 10;

  w := 200; // 放大为200*200的图片

 

  // 接纳纹理 倘使场景中选用多少个纹理,不能够在glBegin() 和 glEnd() 之间绑定纹理

  glBindTexture(GL_TEXTURE_2D, texture);

  glBegin(GL_QUADS);

  // glTexCoord2f 的第八个参数是X坐标。

  // 0.0是纹理的左边。 0.5是纹理的中部, 1.0是纹理的入手。

  // glTexCoord2f 的第一个参数是Y坐标。

  // 0.0是纹理的尾部。 0.5是纹理的小心, 1.0是纹理的顶上部分。

  glTexCoord2f(0, 1);

  glVertex2f(l, t);

  glTexCoord2f(1, 1);

  glVertex2f(l w, t);

  glTexCoord2f(1, 0);

  glVertex2f(l w, t w);

  glTexCoord2f(0, 0);

  glVertex2f(l, t w);

  glEnd();

复制代码

如上的绘图就截止了,以下是Draw中完全的代码,能够不援引援救库Glaux.pas

 

复制代码

procedure TForm1.Draw;

var

  Bmp: TBitmap;

  texture: GLuint;

  l, t, w: Integer;

begin

  Bmp := TBitmap.Create;

  Bmp.LoadFromFile(ExtractFilePath(ParamStr(0)) '1.bmp');

  // 创设纹理区域

  glGenTextures(1, @texture);

  // 绑定纹理区域

  glBindTexture(GL_TEXTURE_2D, texture);

  // 使用位图创设图像纹理

  glTexImage2D(

    GL_TEXTURE_2D,            // 纹理是四个2D纹理 GL_TEXTURE_2D

    0,                        // 图像的事无巨细程度 私下认可 0

    3,                        // 数据的成分数。因为图像是由红,绿,蓝二种组成 默许3

    Bmp.Width,                // 纹理的大幅

    Bmp.Height,               // 纹理的中度

    0,                        // 边框的值 私下认可 0

    GL_BGR_EXT,               // 数据格式 bmp使用 bgr

    GL_UNSIGNED_BYTE,         // 组成图像的数量是无符号字节类型的

    Bmp.ScanLine[Bmp.Height - 1] // DIB数据指针

  );

  // 下边两行是让opengl在放大原始的纹理大(GL_TEXTURE_MAG_FILTERAV4)或缩短原始纹理(GL_TEXTURE_MIN_FILTE奥迪Q5)时OpenGL选用的滤波情势。

  // GL_LINEA昂科雷使用线性滤波,能够把图纸管理处平滑,但要求更加多的内部存储器与CPU

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAVision GT);  // 线形滤波

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEA途锐);  // 线形滤波

 

  // 以下是绘图,利用二个四边形,绘制图片

  

  // 启用纹理映射

  if glIsEnabled(GL_TEXTURE_2D) = 0 then

    glEnable(GL_TEXTURE_2D);

  // 清空缓冲区

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);  

 

  l := 10;

  t := 10;

  w := 200; // 放大为200*200的图片

 

  // 选拔纹理 假如场景中央银行使八个纹理,不可能在glBegin() 和 glEnd() 之间绑定纹理

  glBindTexture(GL_TEXTURE_2D, texture);

  glBegin(GL_QUADS);

  // glTexCoord2f 的首先个参数是X坐标。

  // 0.0是纹理的左边。 0.5是纹理的中段, 1.0是纹理的右臂。

  // glTexCoord2f 的第二个参数是Y坐标。

  // 0.0是纹理的最底层。 0.5是纹理的中部, 1.0是纹理的顶上部分。

  glTexCoord2f(0, 1);

  glVertex2f(l, t);

  glTexCoord2f(1, 1);

  glVertex2f(l w, t);

  glTexCoord2f(1, 0);

  glVertex2f(l w, t w);

  glTexCoord2f(0, 0);

  glVertex2f(l, t w);

  glEnd();

 

  Bmp.Free;

  SwapBuffers(FDC);

end;

一、前言 找了大多质感,要画图纸要先处理一下,供给引用别的单元,Delphi中没带,必要别的下载Gl.pas。看...

一、前言

转自【翻译】NeHe OpenGL 教程

找了好些个资料,要画图纸要先管理一下,必要引用别的单元,Delphi中没带,需求别的下载Gl.pas。看互连网说是自带的OpenGl单元封装的是1.0版的,有此函数未注解。互连网能够找到Gl.pas单元。别的索要一个Glaux.pas单元与glaux.dll,据他们说是扶助库。在本文最终会提供下载。多谢全部笔者提供的材质。

前言

二、流程

宣示,此 NeHe OpenGL教程种类文章由51博客yarin翻译(二〇〇八-08-19),本博客为转发并稍加整理与修改。对NeHe的OpenGL管线教程的编写制定,以及yarn的翻译整理表示谢谢。

  摄影图片必要以下多少个流程。Window本人的绘图是以位图为底蕴的,png,jpg等,水墨画时,能够转为bmp再画。

 

  1.加载bmp图片:auxDIBImageLoadA或其余函数

NeHe OpenGL第二十课:蒙板

  2.转移为纹理:glGenTextures ->glBindTexture ->glTexImage2D,glTexParameteri用于安装相关参数

全球彩票注册平台 1

  3.绘制纹理:glBindTexture ->glBegin ->glTexCoord2f ->glVertex2f ->glEnd

蒙板:

三、利用glDrawPixels函数绘图

到近来结束你早就学会怎样行使阿尔法混合,把两个晶莹剔透物体渲染到荧屏上了,但一些使用它看起来并非那么的复合你的意志。使用蒙板本领,将会服从你蒙板的岗位正确的绘图。

glDrawPixels共有5个参数width: 表图像的宽度height: 表图像的高度format:表图像的数据存储格式atype: 未知 pixels: DIB数据的指针

procedure TForm1.Draw;var  Bmp: TBitmap;begin  Bmp := TBitmap.Create;  Bmp.LoadFromFile(ExtractFilePath(ParamStr(0))   '1.bmp');  // 清空缓冲区  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);  // TBitmap的图像数据在内存中是按行倒序连续存放的,通过TBitmap.ScanLine[TBitmap.Height-1]可以取得首地址即图像缓冲区地址  // bmp图片的颜色是按b g r存储的,所以要选 GL_BGR_EXT做为参数  glDrawPixels(Bmp.Width, Bmp.Height, GL_BGR_EXT, GL_UNSIGNED_BYTE, Bmp.ScanLine[Bmp.Height - 1]);  SwapBuffers;  Bmp.Free;end;

接待来到第20课的课程,*.bmp图像被给各类操作系统所援救,因为它差相当少,所以能够很自在的作为纹理图片加载它。知道现在,大家在把图像加载到荧屏上时未尝擦除背景象,因为这么总结高效。但是效果并不三翻五次很

用以上措施绘制图片不供给启用纹理映射,能够通过glPixelZoom函数来缩放图片,显示地点在窗口的左下角。临时不明了什么转移图像地方。

好。
好些个景观下,把纹理混合到显示屏,纹理不是太少就是太多。当使用灵活时,笔者不指望背景从Smart的夹缝中透出光来;但在体现文字时,你指望文字的茶余餐后能够来得背景象。

三、使用纹理绘图

鉴于上述原因,我们必要选拔“掩模”。使用“掩模”须要八个步骤,首先我们在万象上停放黑白相间的纹路,棕黑代表透明部分,青莲代表不透明部分。接着大家使用一种非常的交集格局,只有在铅色部分上的纹理才会显

自家想按制图片的突显地点与推广降低,如何是好?能够用以下办法。

示在情景中。

1.按流程,大家先把图纸加载到程序里,获取有关的图纸音讯。

本人只重写那么些退换的地点,假诺您搞好了深造的打算,大家就启程吧。
 
在这一个程序里,大家运用7个全局变量。变量masking为一个布尔值,标识是或不是选取“掩模”。变量mp标记键M是不是按下,变量sp标记空格是还是不是按下。
继而大家成立保存5个纹理标识的数组,loop为循环变量。变量roll使得纹理沿显示屏滚动。

将图片加载到纹理中,有二种格局,互联网有人写了,建议参谋学习:

bool masking=TRUE;     // 是或不是采用“掩模”
bool mp;      // 键M是或不是按下
bool sp;      // 空格是或不是按下
bool scene;      // 绘制那么些光景

在delphi中加载一张位图是很简短的,能够经过以下办法加载:

GLuint texture[5];     // 保存5个纹理标记
GLuint loop;      // 循环变量

1).通过协理库的auxDIBImageLoadA函数加载图片,重返是二个PTAUX_瑞虎GBImageRec数据指针,DIB数据格式为EscortGB。笔者没找到方法在运用完释放内部存款和储蓄器的艺术。

GLfloat roll;      // 滚动纹理

本文由全球彩票平台发布于全球彩票注册平台编程,转载请注明出处:第二十课

TAG标签: 全球彩票平台
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。