fixed shader version preparing
This commit is contained in:
parent
c63889fbc0
commit
5f8f3c102e
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
config.tic
BIN
config.tic
Binary file not shown.
67
src/system.c
67
src/system.c
|
@ -602,13 +602,14 @@ static void pollEvent()
|
|||
switch(event.window.event)
|
||||
{
|
||||
case SDL_WINDOWEVENT_RESIZED:
|
||||
{
|
||||
s32 w = 0, h = 0;
|
||||
SDL_GetWindowSize(platform.window, &w, &h);
|
||||
GPU_SetWindowResolution(w, h);
|
||||
{
|
||||
s32 w = 0, h = 0;
|
||||
SDL_GetWindowSize(platform.window, &w, &h);
|
||||
GPU_SetWindowResolution(w, h);
|
||||
|
||||
updateGamepadParts(); break;
|
||||
}
|
||||
updateGamepadParts();
|
||||
}
|
||||
break;
|
||||
case SDL_WINDOWEVENT_FOCUS_GAINED: platform.studio->updateProject(); break;
|
||||
}
|
||||
break;
|
||||
|
@ -950,11 +951,35 @@ static void preseed()
|
|||
#endif
|
||||
}
|
||||
|
||||
static char* prepareShader(const char* code)
|
||||
{
|
||||
GPU_Renderer* renderer = GPU_GetCurrentRenderer();
|
||||
const char* header = "";
|
||||
|
||||
if(renderer->shader_language == GPU_LANGUAGE_GLSL)
|
||||
{
|
||||
if(renderer->max_shader_version >= 120)
|
||||
header = "#version 120\n";
|
||||
else
|
||||
header = "#version 110\n";
|
||||
}
|
||||
else if(renderer->shader_language == GPU_LANGUAGE_GLSLES)
|
||||
header = "#version 100\nprecision mediump int;\nprecision mediump float;\n";
|
||||
|
||||
char* shader = SDL_malloc(strlen(header) + strlen(code) + 2);
|
||||
|
||||
if(shader)
|
||||
{
|
||||
strcpy(shader, header);
|
||||
strcat(shader, code);
|
||||
}
|
||||
|
||||
return shader;
|
||||
}
|
||||
|
||||
static void loadCrtShader()
|
||||
{
|
||||
static const char* VertexShader = "#version 100\n\
|
||||
precision highp float;\n\
|
||||
precision mediump int;\n\
|
||||
char* vertextShader = prepareShader("\
|
||||
attribute vec2 gpu_Vertex;\n\
|
||||
attribute vec2 gpu_TexCoord;\n\
|
||||
attribute mediump vec4 gpu_Color;\n\
|
||||
|
@ -966,9 +991,14 @@ static void loadCrtShader()
|
|||
color = gpu_Color;\n\
|
||||
texCoord = vec2(gpu_TexCoord);\n\
|
||||
gl_Position = gpu_ModelViewProjectionMatrix * vec4(gpu_Vertex, 0.0, 1.0);\n\
|
||||
}";
|
||||
}");
|
||||
|
||||
u32 vertex = GPU_CompileShader(GPU_VERTEX_SHADER, VertexShader);
|
||||
u32 vertex = 0;
|
||||
if(vertextShader)
|
||||
{
|
||||
vertex = GPU_CompileShader(GPU_VERTEX_SHADER, vertextShader);
|
||||
SDL_free(vertextShader);
|
||||
}
|
||||
|
||||
if(!vertex)
|
||||
{
|
||||
|
@ -978,7 +1008,14 @@ static void loadCrtShader()
|
|||
return;
|
||||
}
|
||||
|
||||
u32 fragment = GPU_CompileShader(GPU_PIXEL_SHADER, platform.studio->config()->crtShader);
|
||||
char* fragmentShader = prepareShader(platform.studio->config()->crtShader);
|
||||
|
||||
u32 fragment = 0;
|
||||
if(fragmentShader)
|
||||
{
|
||||
fragment = GPU_CompileShader(GPU_PIXEL_SHADER, fragmentShader);
|
||||
SDL_free(fragmentShader);
|
||||
}
|
||||
|
||||
if(!fragment)
|
||||
{
|
||||
|
@ -1147,6 +1184,12 @@ static s32 start(s32 argc, char **argv, const char* folder)
|
|||
|
||||
platform.gpu.screen = GPU_Init(Width, Height, GPU_INIT_DISABLE_VSYNC);
|
||||
|
||||
{
|
||||
s32 w = 0, h = 0;
|
||||
SDL_GetWindowSize(platform.window, &w, &h);
|
||||
GPU_SetWindowResolution(w, h);
|
||||
}
|
||||
|
||||
initTouchGamepad();
|
||||
|
||||
platform.gpu.texture = GPU_CreateImage(TIC80_FULLWIDTH, TIC80_FULLHEIGHT, STUDIO_PIXEL_FORMAT);
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#define TIC_VERSION_MAJOR 0
|
||||
#define TIC_VERSION_MINOR 70
|
||||
#define TIC_VERSION_PATCH 0
|
||||
#define TIC_VERSION_STATUS " dev"
|
||||
#define TIC_VERSION_STATUS "-dev.2"
|
||||
|
||||
#if defined(TIC80_PRO)
|
||||
#define TIC_VERSION_POST " Pro"
|
||||
|
@ -43,7 +43,7 @@
|
|||
#define DEF2STR2(x) #x
|
||||
#define DEF2STR(x) DEF2STR2(x)
|
||||
|
||||
#define TIC_VERSION_LABEL DEF2STR(TIC_VERSION_MAJOR) "." DEF2STR(TIC_VERSION_MINOR) "." DEF2STR(TIC_VERSION_PATCH) TIC_VERSION_POST TIC_VERSION_STATUS
|
||||
#define TIC_VERSION_LABEL DEF2STR(TIC_VERSION_MAJOR) "." DEF2STR(TIC_VERSION_MINOR) "." DEF2STR(TIC_VERSION_PATCH) TIC_VERSION_STATUS TIC_VERSION_POST
|
||||
#define TIC_PACKAGE "com.nesbox.tic"
|
||||
#define TIC_NAME "TIC-80"
|
||||
#define TIC_NAME_FULL TIC_NAME " tiny computer"
|
||||
|
|
Loading…
Reference in New Issue