0.2 Draw axis

This commit is contained in:
PedroEdiaz
2024-09-05 14:48:51 +00:00
parent a2f49afbf4
commit 06e8e9074b
11 changed files with 213 additions and 53 deletions

View File

@@ -1,25 +1,37 @@
#include <GL/gl.h>
#include "main.h"
#include "data/cube.h"
#include "data/axis.h"
#include "data/shaders.h"
#define WIDTH 512
#define HEIGHT 512
unsigned char palette[] =
{
16,
0x90,0x90,0x90,0xff,
0x91,0x91,0x91,0xff,
0x92,0x92,0x92,0xff,
0xff,0x88,0x33,0xff,
};
const char * wname = "manigraph: manifold grapher";
int main( void )
{
unsigned char rot[3] = {0,0,0};
unsigned int shader, texture;
void * m_cube, *m_axis;
int shader;
void * mesh;
window_t window;
if( !( window = init_window( WIDTH, HEIGHT, wname ) ) )
goto error_window;
use_window( window );
set_color( 51, 76, 76 );
set_color( 0x33, 0x00, 0x00 );
if( !( shader = create_shader() ) )
goto error_shader;
@@ -30,28 +42,49 @@ int main( void )
load_fix_matrix( shader, (float)WIDTH/HEIGHT );
if( !( mesh = create_mesh( cube ) ) )
goto error_mesh;
if( !( m_cube = create_mesh( cube ) ) )
goto error_mesh_cube;
if( !( m_axis = create_mesh( axis ) ) )
goto error_mesh_axis;
texture=create_palette_texture( palette );
use_texture( texture );
while( is_open_window( window ) )
{
load_rot_matrix( shader, rot[0], 0 );
load_rot_matrix( shader, rot[1], 1 );
load_rot_matrix( shader, rot[2], 2 );
load_rot_matrix( shader, rot );
++rot[1];
draw_color();
draw_mesh( mesh );
load_mdl_matrix( shader, 2 );
gload_float( shader, "idx", 2 );
draw_mesh( m_axis );
load_mdl_matrix( shader, 1 );
gload_float( shader, "idx", 1 );
draw_mesh( m_axis );
load_mdl_matrix( shader, 0 );
gload_float( shader, "idx", 0 );
draw_mesh( m_axis );
gload_float( shader, "idx", 3 );
draw_mesh( m_cube );
}
destroy_mesh( mesh );
destroy_texture( texture );
destroy_mesh( m_axis );
destroy_mesh( m_cube );
destroy_shader( shader );
close_window( window );
return 0;
destroy_mesh( mesh );
error_mesh:
error_mesh_axis:
destroy_mesh( m_cube );
error_mesh_cube:
destroy_shader( shader );
error_shader:
close_window( window );