Files
coffee-crisis-ae/source/common/surface.h
T

63 lines
1.4 KiB
C++

#pragma once
#include <SDL2/SDL.h>
typedef struct jSurface_s *jSurface;
class Surface
{
private:
// Variables
jSurface surface;
jSurface destSurface;
SDL_Texture *texture;
Uint32 palette[256];
int transparentColor;
// Escribe pixels en destSurface
void putPixel(int x, int y, Uint8 color);
// Lee pixels en surface
Uint8 getPixel(int x, int y);
// Limpia la paleta
void clearPalette(Uint32 color);
public:
// Constructor
Surface(const char *filename, jSurface dest);
Surface(int width, int height, SDL_Texture *tex);
// Destructor
~Surface();
// Crea una surface
jSurface newSurface(int w, int h);
// Borra una surface
void deleteSurface(jSurface surf);
// Establece una surface de destino donde hacer el blit
void setDest(jSurface surf);
// Establece una textura donde hacer el flip
void setTexture(SDL_Texture *tex);
// Crea una surface a partir de un fichero .gif
jSurface loadSurface(const char *filename);
// Carga una paleta desde un fichero .gif
void loadPalette(const char *filename);
// Copia pixels desde surface a destSurface
void blit(int dx, int dy, int sx, int sy, int w, int h);
// Cambia un color de la paleta
void setPaletteColor(int index, Uint32 color);
// Limpia la surface
void cls(Uint8 color);
// Volca la surface a una textura
void flip(SDL_Texture *texture);
};