- 在线时间
- 0 小时
- 最后登录
- 2005-9-21
- 注册时间
- 2004-4-27
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 1027 点
- 威望
- 0 点
- 阅读权限
- 40
- 积分
- 385
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 153
- 主题
- 43
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   28.33% 该用户从未签到
国际赛参赛者
 |
< >这个类使用了Glu.h头文件.6 [: r/ I: H- S9 D, H
看代码吧!</P>
1 n- O+ i# b. d/ i4 `. i$ l9 n2 |< >//头文件
: t7 w+ a$ R$ a1 R8 L& \#ifndef TEXTURE_H
$ E- r5 a: q& h- ^3 G#define TEXTURE_H</P>) _. m2 `/ h4 Z b' v
< >class Texture
1 G: M7 S# Z F; R- r{7 Y' w9 q% W5 L7 y- K7 e7 a
private:# Q1 P0 e: Y {0 \! _
unsigned int m_Index;
2 P: K# L2 h! v0 B- b# z8 ` bool m_Empty;, V1 `/ m6 S6 r% P& F7 c. ^) g' R
float m_Width;7 ~, p) c7 @. z0 |- C
float m_Height;& n" R }( C7 C9 `' v
public:
& X6 ~% W7 b1 c+ d+ [9 |$ a Texture();
. f& E+ t" v4 f1 j8 I/ }5 s( O: U: q" a ~Texture();</P>
3 C) Q8 N8 m2 c L( E0 K< > void Clear();, w( P2 u O, z2 x8 E' {# F
void LoadFile(char*fn);
l3 C) i+ Q# s- w4 ^7 Z void Draw(float x,float y);9 G& T! b& E: t; `9 P9 q( H* B( `# d
};</P>
4 v+ w. W( y7 r1 |) ~9 n< >#endif//TEXTURE_H( a- v& w& z9 U8 ^) X
# o7 V* @" i8 {) t
% ^! h# w& p! \9 s+ E# ]9 H1 b- m# N9 @* D7 k: R5 ~& T: T
//CPP文件
7 |7 O- I; V8 i+ ]5 e: l2 c#include "Texture.h"5 e$ g) g( |& y6 M
#include <windows.h>
" _' Z6 s7 |, J% o- P! z#include <gl/gl.h>
- g9 t" H- G9 O, B6 Y! P#include <gl/glaux.h></P>
1 e; p8 g: a( p< >#pragma comment(lib,"glaux.lib")</P>
- H2 U+ \% I" S3 r$ m; |4 r< >Texture::Texture()
. u( Y. n5 l9 J7 t3 P" y{
- \1 H% T0 g1 \3 y m_Empty=true; g6 H2 U9 m; T C& I& i! z9 n
}</P>2 w6 D( M O+ P! Q: h/ S$ x7 E
< >Texture::~Texture()# h! q3 f( _# f
{% ~4 m3 E5 Y& d X0 z. Z
Clear();
/ n1 e% j7 g9 l6 m: n P}</P>
; S+ l A1 O" x< >void Texture: oadFile(char*fn) _% m/ w L. M# S
{
8 e& F8 e/ t& B7 [ AUX_RGBImageRec*image;
( x R" K, n0 X; d( S6 C1 h image=NULL;</P>
0 ^% R% i" F- y" O9 n. N8 v& m< > image=auxDIBImageLoad(fn);</P>
2 @: S d& U3 @3 d" c# k< > if(image!=NULL)
$ |8 [1 Q. f' [* r C2 }: |5 k {
8 f! S! o: X% Q) y% A2 ]6 q glGenTextures(1,&m_Index);
* U; {6 |) p; C9 u. p glBindTexture(GL_TEXTURE_2D,m_Index);
" D) _) l+ S/ b' |6 ^! g6 C glTexImage2D(GL_TEXTURE_2D,0,3,image->sizeX,image->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,
) ~0 s& ?$ p% n2 k- O image->data);
: g6 v" h, I1 p5 j! b" k+ n glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);3 J. M4 X" B( j9 F; \& h
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);</P>2 z3 n+ }/ L Z- b7 L7 Z" y
< > m_Width=image->sizeX;
3 u& n: w# D- Q/ b m_Height=image->sizeY;</P>
. _5 |/ X+ r5 n& A4 |! z+ L0 U< > if(image)
; \" |2 M2 G% P' Y3 I0 g' A {
8 o$ A- u. B/ `/ k4 ~+ N if(image->data)
) U/ s: h% }' P4 U6 M. w free(image->data);</P>
; X( i7 t/ Z- Z< > free(image);
. o# D+ U, J0 M1 j9 @5 A# h7 w3 N }</P>
- H$ A7 } P6 X4 u4 J1 p< > m_Empty=false;
" M# F5 w9 g3 l) Z! X1 s }# d# ^: N' y' }+ z: x
}</P>6 w8 q% }% X7 g2 g
< >void Texture: raw(float x,float y)
' N% u$ P: m/ S3 J{
0 G+ c3 o C7 Y7 b" W7 I7 T6 n0 N glEnable(GL_TEXTURE_2D);
: Z( N( O) x4 t glBindTexture(GL_TEXTURE_2D,m_Index);</P>
7 H) Q9 }1 ~+ e< > glPushMatrix();
6 B# ^% g8 Q4 V \# K7 y( Q: M9 w6 X glTranslatef(x,y,0);* ?( \, O* J/ U
glBegin(GL_QUADS);
( h( D, D) {4 c$ n3 |, d glTexCoord2f(0,1);glVertex2f(0 ,0);, x' w9 W# B u
glTexCoord2f(0,0);glVertex2f(0 ,m_Height);8 G6 O! [) e: T: t
glTexCoord2f(1,0);glVertex2f(m_Width,m_Height);
! R/ p% [0 V2 X" D5 U+ { glTexCoord2f(1,1);glVertex2f(m_Width,0);+ k! C2 l% R5 e8 f
glEnd();# {) W: N* s; b( R( O# H0 L
glPopMatrix();5 p" Z$ J4 j" Y+ o1 F, W
glDisable(GL_TEXTURE_2D);" d# k2 Y2 o# G; w
}</P>
0 Q; C% d$ T7 ^$ t' n7 N9 t< >void Texture::Clear()' z& u4 a7 A) S# N
{
u6 S# d% a3 X( e: A1 f if(m_Empty)return;</P>
, C. x6 k2 p( U" q. U8 {3 C< > glDeleteTextures(1,&m_Index);</P>) [# n1 w- J" Z) i: ]6 N8 D
< > m_Empty=true;
" |- T6 J: G( X4 G% Q}3 H& f% n) K# k% d# g, i$ F: J' D
% f: n1 I! F1 e/ y1 a: g! G: K5 `, s) x, A/ K+ ?$ c
; `( l& @; N9 D$ K
使用也很简单..直接Texture t;</P>
8 }' u9 Z- L1 W* f2 z3 ^< >t.LoadFile(FileName);</P>% ?( B6 Y: y. [7 |8 F
< >然后在Draw里,t.draw(x,y);</P>, Q+ K, P- s7 ^2 @0 d( N
< >就可以了.
4 K' u0 _( V% l$ R! {5 A+ O6 h! ]& y6 I* J; P3 K% \% z
以下是效果图:</P> |
zan
|