Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Mar 24th, 2012  |  syntax: C++  |  size: 1.12 KB  |  views: 31  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. class Sprite {
  2. private:
  3.         BITMAP *Load;
  4.         GLuint GLImage;
  5.         int SpriteW;
  6.         int SpriteH;
  7. public:
  8.         void Create(string Path) {
  9.                 Load = NULL;
  10.                 Load = load_bitmap(Path.c_str(),NULL);
  11.                 if(Load == NULL) {
  12.                         allegro_message("Error loading %s",Path.c_str());
  13.                 } else {
  14.                         SpriteW = Load->w;
  15.                         SpriteH = Load->h;
  16.                         GLImage = allegro_gl_make_texture_ex(AGL_TEXTURE_MASKED, Load, GL_RGBA);
  17.                         glBindTexture(GL_TEXTURE_2D, GLImage);
  18.                         destroy_bitmap(Load);
  19.                 }
  20.         }
  21.  
  22.         void Draw(int X, int Y, int ScreenW, int ScreenH) {
  23.  
  24.                 if(ScreenW == 0 || ScreenH == 0) {
  25.                         allegro_message("Screen Width and/or Height invalid!");
  26.                 } else {
  27.  
  28.                         float PosX = ((double)X/(ScreenW/2))-1;
  29.                         float PosY = ((double)Y/(ScreenH/2))-1;
  30.  
  31.                         float Width = (double)SpriteW/(ScreenW/2);
  32.                         float Height = (double)SpriteH/(ScreenH/2);
  33.  
  34.                         glColor4ub(255, 255, 255, 255);
  35.                
  36.                         glTexCoord2f(0,0); glVertex3f(PosX, -PosY, 0); // -0.96 ~ -0.95
  37.                         glTexCoord2f(1,0); glVertex3f(PosX+Width, -PosY, 0); // 0.04
  38.                         glTexCoord2f(1,1); glVertex3f(PosX+Width, (-PosY)-Height, 0);
  39.                         glTexCoord2f(0,1); glVertex3f(PosX, (-PosY)-Height, 0);
  40.  
  41.                 }
  42.         }
  43. };