added shader to renderer2d
This commit is contained in:
parent
2606a344b8
commit
fc8f2b387c
|
@ -1,5 +1,5 @@
|
||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
|
|
||||||
cl build.c src/str.c src/types.c /Iinclude /nologo && del *.obj && build.exe && del build.exe && build\gsa_simple.exe
|
cl build.c src/str.c src/types.c /Iinclude /nologo && del *.obj && build.exe && del build.exe && build\simple.exe
|
||||||
EXIT /B %ERRORLEVEL%
|
EXIT /B %ERRORLEVEL%
|
||||||
|
|
||||||
|
|
1
build.c
1
build.c
|
@ -84,6 +84,7 @@ int main(int argc, char *argv[]) {
|
||||||
"/I. ");
|
"/I. ");
|
||||||
sys("copy gsa_simple.exe test.exe");
|
sys("copy gsa_simple.exe test.exe");
|
||||||
sys("skip ca1 ../example_data gsa_simple.exe");
|
sys("skip ca1 ../example_data gsa_simple.exe");
|
||||||
|
sys("skip ca1 ../example_data simple.exe");
|
||||||
|
|
||||||
sys("del *.obj");
|
sys("del *.obj");
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,18 @@
|
||||||
#include <skunkworks.h>
|
#include <skunkworks.h>
|
||||||
|
|
||||||
void tick() {
|
void render() {
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
struct sw_window *win;
|
struct sw_window *win;
|
||||||
|
struct sw_renderer2d *ren;
|
||||||
|
|
||||||
|
sw_init(argc, argv);
|
||||||
|
|
||||||
win = sw_window_create(sw_vec2i(1280, 720), "example", 0);
|
win = sw_window_create(sw_vec2i(1280, 720), "example", 0);
|
||||||
sw_window_run(win, tick);
|
ren = sw_renderer2d_create();
|
||||||
|
sw_window_add_renderer(win, ren->renderer, render);
|
||||||
|
sw_window_run(win);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,11 @@
|
||||||
|
|
||||||
#include "shader.h"
|
#include "shader.h"
|
||||||
|
|
||||||
|
struct sw_renderer;
|
||||||
|
|
||||||
struct sw_renderer2d {
|
struct sw_renderer2d {
|
||||||
struct sw_shaderprogram shader;
|
struct sw_shaderprogram shader;
|
||||||
|
struct sw_renderer *renderer;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sw_renderer2d *sw_renderer2d_create();
|
struct sw_renderer2d *sw_renderer2d_create();
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "gamepad.h"
|
#include "gamepad.h"
|
||||||
#include "image32.h"
|
#include "image32.h"
|
||||||
#include "image8.h"
|
#include "image8.h"
|
||||||
|
#include "renderer2d.h"
|
||||||
#include "skip.h"
|
#include "skip.h"
|
||||||
#include "str.h"
|
#include "str.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
|
@ -1,3 +1,48 @@
|
||||||
#include "renderer2d.h"
|
#include "renderer2d.h"
|
||||||
|
#include "renderer.h"
|
||||||
|
#include "shader.h"
|
||||||
|
#include "skip.h"
|
||||||
|
|
||||||
struct sw_renderer2d *sw_renderer2d_create(){};
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "gl.h"
|
||||||
|
|
||||||
|
struct vert {
|
||||||
|
f32 x, y, z;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void r_enter(struct sw_window *win, void *data);
|
||||||
|
static void r_exit(struct sw_window *win, void *data);
|
||||||
|
|
||||||
|
struct sw_renderer2d *sw_renderer2d_create() {
|
||||||
|
struct sw_renderer2d *ren;
|
||||||
|
u8 *frag, *vert;
|
||||||
|
|
||||||
|
ren = malloc(sizeof(struct sw_renderer2d));
|
||||||
|
ren->renderer = sw_renderer_create(ren, r_enter, r_exit);
|
||||||
|
|
||||||
|
frag = sw_skip_get_string(sw_skip_self, "renderer2d_frag.glsl");
|
||||||
|
vert = sw_skip_get_string(sw_skip_self, "renderer2d_vert.glsl");
|
||||||
|
|
||||||
|
ren->shader = sw_shaderprogram_create(vert, 0, frag, 0, 0);
|
||||||
|
|
||||||
|
return ren;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void r_enter(struct sw_window *win, void *data) {
|
||||||
|
struct sw_renderer2d *ren;
|
||||||
|
|
||||||
|
ren = data;
|
||||||
|
sw_shaderprogram_use(ren->shader);
|
||||||
|
|
||||||
|
glBegin(GL_TRIANGLES);
|
||||||
|
|
||||||
|
glVertex2i(0, 0);
|
||||||
|
glVertex2i(1, 0);
|
||||||
|
glVertex2i(0, 1);
|
||||||
|
|
||||||
|
glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void r_exit(struct sw_window *win, void *data) {
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#version 460
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 color;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
color = vec4(0.1, 0.2, 0.3, 1.0);
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#version 460
|
||||||
|
|
||||||
|
layout(location = 0) in vec3 pos;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
gl_Position = vec4(pos, 1.0);
|
||||||
|
}
|
|
@ -7,7 +7,6 @@ struct sw_shaderprogram sw_shaders_scale;
|
||||||
|
|
||||||
void sw_shaders_static_init() {
|
void sw_shaders_static_init() {
|
||||||
u8 *vert_copy, *frag_copy, *frag_scale;
|
u8 *vert_copy, *frag_copy, *frag_scale;
|
||||||
u32 size;
|
|
||||||
|
|
||||||
sw_log("initialising shaders");
|
sw_log("initialising shaders");
|
||||||
vert_copy = sw_skip_get_string(sw_skip_self, "shader_copy_vert.glsl");
|
vert_copy = sw_skip_get_string(sw_skip_self, "shader_copy_vert.glsl");
|
||||||
|
|
Loading…
Reference in New Issue