project for a (works on my devices) demo

This commit is contained in:
beno
2026-03-13 16:48:03 +01:00
parent 0c0b42fbd0
commit 7ca7ec5d61
38 changed files with 4797 additions and 62 deletions

101
demo/main.c Executable file
View File

@@ -0,0 +1,101 @@
#include <stdlib.h>
#include <stdio.h>
#include <GLES2/gl2.h>
#include <glut.h>
#include <glut_extensions.h>
const int TARGET_FPS = 15;
static int ONE_TICK_MS = 1000 / TARGET_FPS;
float viewSize = 2.0f;
float aspect_ratio;
int steps = 60;
/* don't want to implement */
/* also removed
glEnable(GL_ALPHA_TEST);
glDisable(GL_ALPHA_TEST);
*/
GLuint GLUT_COMPATIBILITY_PROFILE = 0 ;
GLuint GLUT_SINGLE = 0 ;
GLuint GLUT_RGBA = 0 ;
const GLuint GLUT_SCREEN_WIDTH = 0;
const GLuint GLUT_SCREEN_HEIGHT = 1;
void glutInitContextVersion( int maj, int min){}
void glutInitContextProfile( GLuint profile){}
void glutInitDisplayMode( GLuint OR_ed_FLAGS){}
int glutGet(GLuint dimension){
switch( dimension) {
case 0 :
return 1920;
break;
case 1 :
return 1152;
break;
default:
exit(1);
}
}
//funky stuff ahead
void renderLoop() {
glClearColor( 0.0f, 1.0f, 0.0f, 1.0f);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
void timer(int value) {
printf("crashes here\n");
uint8_t touch_count;
touch_event **touch_buffer;
glutGetTouchProxy().get_tracked_events( &touch_buffer, &touch_count);
printf("%d touch_events\n", touch_count);
if( touch_count)
free_touch_events_array( touch_buffer, touch_count);
/*would have handled animations*/
glutTimerFunc(ONE_TICK_MS, timer, 0);
glutPostRedisplay();
}
void keypressed(unsigned char key, int x, int y) {
printf("pressed key %d\n", key);
}
void mousemoved(int x, int y) {
//camera.mouseMotion(x, y);
}
int main(int argc, char* argv[]) {
printf("i'm alive!\n");
glutInit(&argc, argv);
glutInitContextVersion(4, 0);
glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
int scrWidth = glutGet(GLUT_SCREEN_WIDTH) * 5 / 6;
int scrHeight = glutGet(GLUT_SCREEN_HEIGHT) * 5 / 6;
//scrWidth = 640;
//scrHeight = 480;
aspect_ratio = ( (float) scrWidth) / scrHeight;
glutInitWindowSize( scrWidth , scrHeight );
glutInitWindowPosition( 0, 0);
glutCreateWindow("TriDi");
glutTimerFunc(ONE_TICK_MS, timer, 0);
glutDisplayFunc(renderLoop);
glutKeyboardFunc(keypressed);
glutPassiveMotionFunc(mousemoved);
/*check what MESA has to offer*/
const GLubyte *extensions = glGetString(GL_EXTENSIONS);
printf("%s\n", extensions);
glutMainLoop();
}