Moved params_fbo from main to renderer
This commit is contained in:
parent
efcb0d4492
commit
eec2f98812
Binary file not shown.
Binary file not shown.
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,8 +1,8 @@
|
||||
# Other
|
||||
build/*
|
||||
assets/*
|
||||
bin/*
|
||||
.cache/*
|
||||
build/**
|
||||
assets/**
|
||||
bin/**
|
||||
.cache/**
|
||||
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
1
memchk.sh
Executable file
1
memchk.sh
Executable file
@ -0,0 +1 @@
|
||||
valgrind --leak-check=yes ./bin/wotos ./assets/aa.mkv
|
@ -41,11 +41,9 @@ void renderer_init(struct Renderer *self) {
|
||||
{ .index = 0, .name = "texcoord" }
|
||||
});
|
||||
|
||||
// Define buffers
|
||||
_renderer_mpv(self);
|
||||
_renderer_glyph(self);
|
||||
|
||||
// Create bitmaps
|
||||
self->atlas = makeBitmaps();
|
||||
}
|
||||
|
||||
@ -57,6 +55,7 @@ void renderer_destroy(struct Renderer *self) {
|
||||
vao_destroy(self->screenVAO);
|
||||
vbo_destroy(self->screenVBO);
|
||||
|
||||
free(self->params_fbo);
|
||||
free(self);
|
||||
}
|
||||
|
||||
@ -102,9 +101,17 @@ void _renderer_mpv(struct Renderer *self) {
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, self->video_textureColorbuffer, 0);
|
||||
|
||||
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
|
||||
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE){
|
||||
printf("ERROR::FRAMEBUFFER:: VIDEO Framebuffer #%d is not complete!\n", self->video_framebuffer);
|
||||
}
|
||||
self->mpv_fbo = (mpv_opengl_fbo){(int)(self->video_framebuffer), fbo_width, fbo_height, 0};
|
||||
|
||||
self->params_fbo = malloc(sizeof(mpv_render_param [3]));
|
||||
memcpy(self->params_fbo, (mpv_render_param [3]){
|
||||
{MPV_RENDER_PARAM_OPENGL_FBO, &(self->mpv_fbo)},
|
||||
{MPV_RENDER_PARAM_FLIP_Y, &flip_y},
|
||||
{MPV_RENDER_PARAM_INVALID, NULL}}, sizeof(mpv_render_param [3]));
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -16,6 +16,8 @@ enum ShaderType {
|
||||
SHADER_BASIC_TEXTURE
|
||||
};
|
||||
|
||||
extern int flip_y;
|
||||
|
||||
|
||||
struct Renderer{
|
||||
struct Shader shaders[SHADERS_LAST + 1];
|
||||
|
44
src/main.c
44
src/main.c
@ -3,42 +3,32 @@
|
||||
#include "gfx/vbo.h"
|
||||
#include "glad/glad.h"
|
||||
|
||||
static inline void check_error(int);
|
||||
void init();
|
||||
void update();
|
||||
void render();
|
||||
|
||||
static inline void check_error(int);
|
||||
static inline void _setup();
|
||||
|
||||
int main(int argc, char const *argv[]){
|
||||
if (argc < 2){ return -1;}
|
||||
_setup();
|
||||
|
||||
/* Create the main window*/
|
||||
window = window_create(init, NULL, NULL, update, render);
|
||||
|
||||
/* Set up the MPV player*/
|
||||
player = player_create();
|
||||
player_init(player);
|
||||
|
||||
/* Setting the renderer*/
|
||||
renderer = renderer_create();
|
||||
renderer_init(renderer);
|
||||
|
||||
/* Glyph shenanigans */
|
||||
//mat4s transformation = glms_ortho(0.0f, (float)(window_width), 0.0f, (float)window_height, -100, 100);
|
||||
|
||||
// this doesn't work when called from inside the Renderer struct...
|
||||
int flip_y = 1;
|
||||
renderer->params_fbo = (mpv_render_param [3]){
|
||||
{MPV_RENDER_PARAM_OPENGL_FBO, &(renderer->mpv_fbo)},
|
||||
{MPV_RENDER_PARAM_FLIP_Y, &flip_y},
|
||||
{MPV_RENDER_PARAM_INVALID, NULL}};
|
||||
|
||||
/* Start video playback */
|
||||
player_loadfile(player, argv[1]);
|
||||
window_loop();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void _setup(){
|
||||
window = window_create(init, NULL, NULL, update, render);
|
||||
|
||||
player = player_create();
|
||||
player_init(player);
|
||||
|
||||
renderer = renderer_create();
|
||||
renderer_init(renderer);
|
||||
|
||||
/* Glyph shenanigans */
|
||||
//mat4s transformation = glms_ortho(0.0f, (float)(window_width), 0.0f, (float)window_height, -100, 100);
|
||||
}
|
||||
|
||||
// TODO Remove these function from here
|
||||
void processGLFWInput(GLFWwindow *window, mpv_handle *ctx)
|
||||
{
|
||||
glfwSetInputMode(window, GLFW_STICKY_KEYS, GLFW_FALSE);
|
||||
|
10
src/main.h
10
src/main.h
@ -42,9 +42,8 @@ int window_width = 1920;
|
||||
int window_height = 1080;
|
||||
|
||||
struct Window *window;
|
||||
GLFWwindow *wwindow = NULL;
|
||||
mpv_handle *mpv;
|
||||
mpv_render_context *mpv_ctx;
|
||||
|
||||
int flip_y = 1;
|
||||
|
||||
unsigned int screen_rbo;
|
||||
unsigned int video_rbo;
|
||||
@ -78,6 +77,11 @@ float imgVertices[] = {
|
||||
int wakeup = 0;
|
||||
//extern int wakeup;
|
||||
|
||||
void init();
|
||||
void update();
|
||||
void render();
|
||||
|
||||
|
||||
|
||||
bool SetSocketBlockingEnabled(int fd, bool blocking);
|
||||
|
||||
|
Reference in New Issue
Block a user