Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Sprite {
- private:
- BITMAP *Load;
- GLuint GLImage;
- int SpriteW;
- int SpriteH;
- public:
- void Create(string Path) {
- Load = NULL;
- Load = load_bitmap(Path.c_str(),NULL);
- if(Load == NULL) {
- allegro_message("Error loading %s",Path.c_str());
- } else {
- SpriteW = Load->w;
- SpriteH = Load->h;
- GLImage = allegro_gl_make_texture_ex(AGL_TEXTURE_MASKED, Load, GL_RGBA);
- glBindTexture(GL_TEXTURE_2D, GLImage);
- destroy_bitmap(Load);
- }
- }
- void Draw(int X, int Y, int ScreenW, int ScreenH) {
- if(ScreenW == 0 || ScreenH == 0) {
- allegro_message("Screen Width and/or Height invalid!");
- } else {
- float PosX = ((double)X/(ScreenW/2))-1;
- float PosY = ((double)Y/(ScreenH/2))-1;
- float Width = (double)SpriteW/(ScreenW/2);
- float Height = (double)SpriteH/(ScreenH/2);
- glColor4ub(255, 255, 255, 255);
- glTexCoord2f(0,0); glVertex3f(PosX, -PosY, 0); // -0.96 ~ -0.95
- glTexCoord2f(1,0); glVertex3f(PosX+Width, -PosY, 0); // 0.04
- glTexCoord2f(1,1); glVertex3f(PosX+Width, (-PosY)-Height, 0);
- glTexCoord2f(0,1); glVertex3f(PosX, (-PosY)-Height, 0);
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement