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
|
# Other
|
||||||
build/*
|
build/**
|
||||||
assets/*
|
assets/**
|
||||||
bin/*
|
bin/**
|
||||||
.cache/*
|
.cache/**
|
||||||
|
|
||||||
# Prerequisites
|
# Prerequisites
|
||||||
*.d
|
*.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" }
|
{ .index = 0, .name = "texcoord" }
|
||||||
});
|
});
|
||||||
|
|
||||||
// Define buffers
|
|
||||||
_renderer_mpv(self);
|
_renderer_mpv(self);
|
||||||
_renderer_glyph(self);
|
_renderer_glyph(self);
|
||||||
|
|
||||||
// Create bitmaps
|
|
||||||
self->atlas = makeBitmaps();
|
self->atlas = makeBitmaps();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,6 +55,7 @@ void renderer_destroy(struct Renderer *self) {
|
|||||||
vao_destroy(self->screenVAO);
|
vao_destroy(self->screenVAO);
|
||||||
vbo_destroy(self->screenVBO);
|
vbo_destroy(self->screenVBO);
|
||||||
|
|
||||||
|
free(self->params_fbo);
|
||||||
free(self);
|
free(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,9 +101,17 @@ void _renderer_mpv(struct Renderer *self) {
|
|||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, self->video_textureColorbuffer, 0);
|
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);
|
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->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
|
SHADER_BASIC_TEXTURE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern int flip_y;
|
||||||
|
|
||||||
|
|
||||||
struct Renderer{
|
struct Renderer{
|
||||||
struct Shader shaders[SHADERS_LAST + 1];
|
struct Shader shaders[SHADERS_LAST + 1];
|
||||||
|
44
src/main.c
44
src/main.c
@ -3,42 +3,32 @@
|
|||||||
#include "gfx/vbo.h"
|
#include "gfx/vbo.h"
|
||||||
#include "glad/glad.h"
|
#include "glad/glad.h"
|
||||||
|
|
||||||
static inline void check_error(int);
|
static inline void check_error(int);
|
||||||
void init();
|
static inline void _setup();
|
||||||
void update();
|
|
||||||
void render();
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char const *argv[]){
|
int main(int argc, char const *argv[]){
|
||||||
if (argc < 2){ return -1;}
|
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]);
|
player_loadfile(player, argv[1]);
|
||||||
window_loop();
|
window_loop();
|
||||||
return 0;
|
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)
|
void processGLFWInput(GLFWwindow *window, mpv_handle *ctx)
|
||||||
{
|
{
|
||||||
glfwSetInputMode(window, GLFW_STICKY_KEYS, GLFW_FALSE);
|
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;
|
int window_height = 1080;
|
||||||
|
|
||||||
struct Window *window;
|
struct Window *window;
|
||||||
GLFWwindow *wwindow = NULL;
|
|
||||||
mpv_handle *mpv;
|
int flip_y = 1;
|
||||||
mpv_render_context *mpv_ctx;
|
|
||||||
|
|
||||||
unsigned int screen_rbo;
|
unsigned int screen_rbo;
|
||||||
unsigned int video_rbo;
|
unsigned int video_rbo;
|
||||||
@ -78,6 +77,11 @@ float imgVertices[] = {
|
|||||||
int wakeup = 0;
|
int wakeup = 0;
|
||||||
//extern int wakeup;
|
//extern int wakeup;
|
||||||
|
|
||||||
|
void init();
|
||||||
|
void update();
|
||||||
|
void render();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool SetSocketBlockingEnabled(int fd, bool blocking);
|
bool SetSocketBlockingEnabled(int fd, bool blocking);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user