- [FIX] Ja se pot amagar i mostrar el cursor.
- [FIX] Arreglat error al carregar arxius zero_terminated. - [ONGOING] Un poc de treball en shaders més avançats.
This commit is contained in:
@@ -276,6 +276,18 @@ namespace draw
|
||||
shader_enabled ? disableShader() : enableShader();
|
||||
}
|
||||
|
||||
void hideCursor()
|
||||
{
|
||||
screen_cursor = false;
|
||||
SDL_HideCursor();
|
||||
}
|
||||
|
||||
void showCursor()
|
||||
{
|
||||
screen_cursor = true;
|
||||
SDL_ShowCursor();
|
||||
}
|
||||
|
||||
// Crea una superficie i torna un punter a ella
|
||||
surface *createSurface(const uint16_t w, const uint16_t h)
|
||||
{
|
||||
|
||||
@@ -46,6 +46,9 @@ namespace draw
|
||||
void disableShader();
|
||||
void toggleShader();
|
||||
|
||||
void hideCursor();
|
||||
void showCursor();
|
||||
|
||||
/// @brief Crea una superficie i torna un punter a ella
|
||||
/// @param w ample de la superficie
|
||||
/// @param h alt de la superficie
|
||||
|
||||
@@ -134,7 +134,7 @@ namespace file
|
||||
|
||||
char *getFileBuffer(const char *resourcename, int& filesize, const bool zero_terminate) {
|
||||
FILE *f = getFilePointer(resourcename, filesize, true);
|
||||
char* buffer = (char*)malloc(zero_terminate?filesize:filesize+1);
|
||||
char* buffer = (char*)malloc(zero_terminate?filesize+1:filesize);
|
||||
fread(buffer, filesize, 1, f);
|
||||
if (zero_terminate) buffer[filesize]=0;
|
||||
fclose(f);
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace shader
|
||||
PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
|
||||
PFNGLUSEPROGRAMPROC glUseProgram;
|
||||
PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
|
||||
PFNGLUNIFORM2FPROC glUniform2f;
|
||||
|
||||
bool initGLExtensions() {
|
||||
glCreateShader = (PFNGLCREATESHADERPROC)SDL_GL_GetProcAddress("glCreateShader");
|
||||
@@ -66,11 +67,12 @@ namespace shader
|
||||
glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)SDL_GL_GetProcAddress("glGetProgramInfoLog");
|
||||
glUseProgram = (PFNGLUSEPROGRAMPROC)SDL_GL_GetProcAddress("glUseProgram");
|
||||
glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)SDL_GL_GetProcAddress("glGetUniformLocation");
|
||||
glUniform2f = (PFNGLUNIFORM2FPROC)SDL_GL_GetProcAddress("glUniform2f");
|
||||
|
||||
return glCreateShader && glShaderSource && glCompileShader && glGetShaderiv &&
|
||||
glGetShaderInfoLog && glDeleteShader && glAttachShader && glCreateProgram &&
|
||||
glDeleteProgram && glLinkProgram && glValidateProgram && glGetProgramiv &&
|
||||
glGetProgramInfoLog && glUseProgram && glGetUniformLocation;
|
||||
glGetProgramInfoLog && glUseProgram && glGetUniformLocation && glUniform2f;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -205,6 +207,7 @@ namespace shader
|
||||
can_use_opengl = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
can_use_opengl = true;
|
||||
return true;
|
||||
}
|
||||
@@ -236,6 +239,9 @@ namespace shader
|
||||
glUseProgram(programId);
|
||||
}
|
||||
|
||||
//GLint loc = glGetUniformLocation(programId, "TextureSize");
|
||||
//glUniform2f(loc, 320, 256);
|
||||
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glBindTexture(GL_TEXTURE_2D, 1);
|
||||
@@ -265,6 +271,7 @@ namespace shader
|
||||
SDL_RenderTexture(renderer, backBuffer, NULL, &window);
|
||||
SDL_RenderPresent(renderer);
|
||||
}
|
||||
if (glGetError()) { printf("GLERROR!\n"); exit(1); }
|
||||
int glerror = glGetError();
|
||||
if (glerror) { printf("GLERROR: %i\n", glerror); exit(1); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
void game::init()
|
||||
{
|
||||
draw::init("Arounders", 320, 200, 3, false, 3.0f/4.0f);
|
||||
draw::setShader("lynx.glsl");
|
||||
draw::setShader("gbc.glsl");
|
||||
draw::setTrans(0);
|
||||
audio::init(48000, SDL_AUDIO_S16, 2);
|
||||
|
||||
draw::hideCursor();
|
||||
|
||||
file::setConfigFolder("arounders");
|
||||
font::init();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user