From 526f1606708abd2e1b57baf064f6d9401420353a Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Mon, 22 Sep 2014 23:08:21 -0400 Subject: [PATCH] Fixup code to work against new ZeroCore --- buildscripts/build.generic | 2 +- external/zero/include/VertexController.hpp | 52 ++++++++++++ external/zero/include/Zero.hpp | 2 + external/zero/src/VertexController.cpp | 92 ++++++++++++++++++++++ vndc/include/gitrev.hpp | 4 +- vndc/src/Loop.cpp | 2 +- vndc/src/op_cleartext.cpp | 4 +- 7 files changed, 152 insertions(+), 6 deletions(-) create mode 100644 external/zero/include/VertexController.hpp create mode 100644 external/zero/src/VertexController.cpp diff --git a/buildscripts/build.generic b/buildscripts/build.generic index 25f8183..0285929 100755 --- a/buildscripts/build.generic +++ b/buildscripts/build.generic @@ -12,7 +12,7 @@ LIB=$ROOT/external/lib BIN=$ROOT/bin CXXFLAGS="-g `pkg-config sdl2 --cflags` `pkg-config SDL2_mixer --cflags` `pkg-config SDL2_image --cflags` `pkg-config SDL2_ttf --cflags`" -LDFLAGS="`pkg-config sdl2 --libs` `pkg-config SDL2_image --libs` `pkg-config SDL2_ttf --libs` `pkg-config SDL2_mixer --libs`" +LDFLAGS="`pkg-config sdl2 --libs` `pkg-config SDL2_image --libs` `pkg-config SDL2_ttf --libs` `pkg-config SDL2_mixer --libs` -lGL" INCLUDE="-I$ROOT/external/zero/include -I$ROOT/vndc/include" source buildscripts/mk diff --git a/external/zero/include/VertexController.hpp b/external/zero/include/VertexController.hpp new file mode 100644 index 0000000..d6a04bb --- /dev/null +++ b/external/zero/include/VertexController.hpp @@ -0,0 +1,52 @@ +#ifndef VTEXCONTROL_HPP +#define VTEXCONTROL_HPP + +typedef struct { + GLfloat x, y, z; + GLfloat u, v; +} VtexData; + +typedef struct { + VtexData pts[4]; +} PrimData; + +typedef struct { + PrimData* v; // Vertex data + int count; // How many vertexes + int pts; // 4 or 3 + GLuint t; // Texture ptr +} ModelData; + +class VertexController { + public: + VertexController(ContextManager* cx); + + // Storage initializers. + void LoadModel(); + + // Programmatic Model Creation. + void PushModel(int mode); + + void PushTexture(char* fname); + + void PushQuad( GLfloat x1, GLfloat y1, GLfloat z1, GLfloat u1, GLfloat v1, + GLfloat x2, GLfloat y2, GLfloat z2, GLfloat u2, GLfloat v2, + GLfloat x3, GLfloat y3, GLfloat z3, GLfloat u3, GLfloat v3, + GLfloat x4, GLfloat y4, GLfloat z4, GLfloat u4, GLfloat v4 ); + + void PushTri( GLfloat x1, GLfloat y1, GLfloat z1, GLfloat u1, GLfloat v1, + GLfloat x2, GLfloat y2, GLfloat z2, GLfloat u2, GLfloat v2, + GLfloat x3, GLfloat y3, GLfloat z3, GLfloat u3, GLfloat v3 ); + + void PushDone(); + + + private: + ModelData* models; + ContextManager* ctx; + int modelscount; + + void _AllocateVertex(); +}; + +#endif diff --git a/external/zero/include/Zero.hpp b/external/zero/include/Zero.hpp index b272e53..b99ccb2 100644 --- a/external/zero/include/Zero.hpp +++ b/external/zero/include/Zero.hpp @@ -19,6 +19,7 @@ #include #include #include +#include #if SDL_BYTEORDER == SDL_BIG_ENDIAN #define RED_MASK 0xff000000 @@ -36,5 +37,6 @@ #include "ContextManager.hpp" #include "TextManager.hpp" #include "UDisplayable.hpp" +#include "VertexController.hpp" #endif diff --git a/external/zero/src/VertexController.cpp b/external/zero/src/VertexController.cpp new file mode 100644 index 0000000..b159339 --- /dev/null +++ b/external/zero/src/VertexController.cpp @@ -0,0 +1,92 @@ +#include + VertexController::VertexController(ContextManager* cx) { + ctx = cx; + } + + // Storage initializers. + void VertexController::LoadModel() { + + } + + // Programmatic Model Creation. + void VertexController::PushModel(int mode) { + ++modelscount; + models = NULL; + + models = (ModelData*)realloc(models, sizeof(ModelData) * modelscount); + + models[modelscount-1].pts = mode; + models[modelscount-1].count = 0; + models[modelscount-1].v = NULL; + } + + void VertexController::PushTexture(char* fname) { + void* ptr = ctx->LoadImage(fname); + models[modelscount-1].t = ((GLuint*)ctx->GLTexImage(ptr))[0]; + } + + void VertexController::PushQuad( GLfloat x1, GLfloat y1, GLfloat z1, GLfloat u1, GLfloat v1, + GLfloat x2, GLfloat y2, GLfloat z2, GLfloat u2, GLfloat v2, + GLfloat x3, GLfloat y3, GLfloat z3, GLfloat u3, GLfloat v3, + GLfloat x4, GLfloat y4, GLfloat z4, GLfloat u4, GLfloat v4 ) { + _AllocateVertex(); + + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].x = x1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].y = y1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].z = z1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].u = u1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].v = v1; + + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].x = x2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].y = y2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].z = z2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].u = u2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].v = v2; + + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].x = x3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].y = y3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].z = z3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].u = u3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].v = v3; + + models[modelscount-1].v[models[modelscount-1].count-1].pts[3].x = x4; + models[modelscount-1].v[models[modelscount-1].count-1].pts[3].y = y4; + models[modelscount-1].v[models[modelscount-1].count-1].pts[3].z = z4; + models[modelscount-1].v[models[modelscount-1].count-1].pts[3].u = u4; + models[modelscount-1].v[models[modelscount-1].count-1].pts[3].v = v4; + + + } + + void VertexController::PushTri( GLfloat x1, GLfloat y1, GLfloat z1, GLfloat u1, GLfloat v1, + GLfloat x2, GLfloat y2, GLfloat z2, GLfloat u2, GLfloat v2, + GLfloat x3, GLfloat y3, GLfloat z3, GLfloat u3, GLfloat v3 ) { + _AllocateVertex(); + + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].x = x1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].y = y1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].z = z1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].u = u1; + models[modelscount-1].v[models[modelscount-1].count-1].pts[0].v = v1; + + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].x = x2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].y = y2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].z = z2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].u = u2; + models[modelscount-1].v[models[modelscount-1].count-1].pts[1].v = v2; + + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].x = x3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].y = y3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].z = z3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].u = u3; + models[modelscount-1].v[models[modelscount-1].count-1].pts[2].v = v3; + } + + void VertexController::_AllocateVertex() { + models[modelscount-1].count += 1; + models[modelscount-1].v = (PrimData*)realloc(models[modelscount-1].v, sizeof(PrimData) * models[modelscount-1].count); + } + + void VertexController::PushDone() { + + } diff --git a/vndc/include/gitrev.hpp b/vndc/include/gitrev.hpp index 4c62591..4c7297c 100644 --- a/vndc/include/gitrev.hpp +++ b/vndc/include/gitrev.hpp @@ -1,5 +1,5 @@ #ifndef GIT_REV_HDR #define GIT_REV_HDR -#define GIT_REV "0d912e54426c23b522144bfd19536756ed2577be" -#define WITH_ANDROID 1 +#define GIT_REV "256da2f3a0597798795d1e838783d74a2e1d4f41" + #endif diff --git a/vndc/src/Loop.cpp b/vndc/src/Loop.cpp index 13e5be6..cb47edd 100644 --- a/vndc/src/Loop.cpp +++ b/vndc/src/Loop.cpp @@ -39,7 +39,7 @@ void Loop() { void Setup() { // Init window - GetData()->ctx->InitWindowLogical(GetData()->physical_w, GetData()->physical_h, GetData()->screen_w, GetData()->screen_h, GetData()->fullscreen, !(GetData()->sw_rendering)); + GetData()->ctx->InitWindowLogical(GetData()->physical_w, GetData()->physical_h, GetData()->screen_w, GetData()->screen_h, GetData()->fullscreen, (GetData()->sw_rendering ? Software : Accel2d )); GetData()->window_name = (char*)calloc(sizeof(char), 400); sprintf(GetData()->window_name, "%s", "VNDC Interpreter "); diff --git a/vndc/src/op_cleartext.cpp b/vndc/src/op_cleartext.cpp index 27c762d..2b6c711 100644 --- a/vndc/src/op_cleartext.cpp +++ b/vndc/src/op_cleartext.cpp @@ -30,12 +30,12 @@ void ct_transwindow() { //SDL_SetTextureBlendMode(dim, SDL_BLENDMODE_BLEND); //SDL_SetTextureAlphaMod(dim, 128); - GetData()->ctx->OverlayBlit(dim, &src, &dst); + GetData()->ctx->OverlayBlit(dim, &src, &dst, NULL); SDL_DestroyTexture(dim); } else { - GetData()->ctx->OverlayBlit(sfc, &src, &dst); + GetData()->ctx->OverlayBlit(sfc, &src, &dst, NULL); } SDL_FreeSurface(sfc); -- 2.39.5