Renders on PSP but it's inconsistent
This commit is contained in:
@@ -28,7 +28,7 @@ target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
|
|||||||
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
|
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
|
||||||
DUSK_SDL2
|
DUSK_SDL2
|
||||||
DUSK_OPENGL
|
DUSK_OPENGL
|
||||||
# DUSK_OPENGL_LEGACY
|
DUSK_OPENGL_LEGACY
|
||||||
DUSK_LINUX
|
DUSK_LINUX
|
||||||
DUSK_DISPLAY_SIZE_DYNAMIC
|
DUSK_DISPLAY_SIZE_DYNAMIC
|
||||||
DUSK_DISPLAY_WIDTH_DEFAULT=640
|
DUSK_DISPLAY_WIDTH_DEFAULT=640
|
||||||
|
|||||||
@@ -31,6 +31,10 @@ errorret_t displayInit(void) {
|
|||||||
#ifdef displayPlatformInit
|
#ifdef displayPlatformInit
|
||||||
errorChain(displayPlatformInit());
|
errorChain(displayPlatformInit());
|
||||||
#endif
|
#endif
|
||||||
|
errorChain(textureInit(
|
||||||
|
&TEXTURE_WHITE, 4, 4,
|
||||||
|
TEXTURE_FORMAT_RGBA, (texturedata_t){ .rgbaColors = TEXTURE_WHITE_PIXELS }
|
||||||
|
));
|
||||||
errorChain(quadInit());
|
errorChain(quadInit());
|
||||||
errorChain(cubeInit());
|
errorChain(cubeInit());
|
||||||
errorChain(frameBufferInitBackBuffer());
|
errorChain(frameBufferInitBackBuffer());
|
||||||
|
|||||||
@@ -11,6 +11,14 @@
|
|||||||
#include "util/math.h"
|
#include "util/math.h"
|
||||||
#include "display/display.h"
|
#include "display/display.h"
|
||||||
|
|
||||||
|
texture_t TEXTURE_WHITE;
|
||||||
|
color_t TEXTURE_WHITE_PIXELS[4*4] = {
|
||||||
|
COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE,
|
||||||
|
COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE,
|
||||||
|
COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE,
|
||||||
|
COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE,
|
||||||
|
};
|
||||||
|
|
||||||
errorret_t textureInit(
|
errorret_t textureInit(
|
||||||
texture_t *texture,
|
texture_t *texture,
|
||||||
const int32_t width,
|
const int32_t width,
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ typedef union texturedata_u {
|
|||||||
color_t *rgbaColors;
|
color_t *rgbaColors;
|
||||||
} texturedata_t;
|
} texturedata_t;
|
||||||
|
|
||||||
|
extern texture_t TEXTURE_WHITE;
|
||||||
|
extern color_t TEXTURE_WHITE_PIXELS[4*4];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes a texture.
|
* Initializes a texture.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ errorret_t engineInit(const int32_t argc, const char_t **argv) {
|
|||||||
));
|
));
|
||||||
|
|
||||||
shadermaterial_t *mat = entityMaterialGetShaderMaterial(ent1, ent1Mat);
|
shadermaterial_t *mat = entityMaterialGetShaderMaterial(ent1, ent1Mat);
|
||||||
mat->unlit.color = COLOR_WHITE;
|
mat->unlit.color = COLOR_BLACK;
|
||||||
mat->unlit.texture = &TEXTURE;
|
mat->unlit.texture = &TEXTURE;
|
||||||
|
|
||||||
// EOF
|
// EOF
|
||||||
@@ -102,7 +102,11 @@ errorret_t engineUpdate(void) {
|
|||||||
|
|
||||||
vec3 rotation;
|
vec3 rotation;
|
||||||
entityPositionGetRotation(ent1, ent1Pos, rotation);
|
entityPositionGetRotation(ent1, ent1Pos, rotation);
|
||||||
rotation[1] += 0.01f;
|
#if DUSK_TIME_DYNAMIC
|
||||||
|
rotation[1] += 2.0f * TIME.dynamicDelta;
|
||||||
|
#else
|
||||||
|
rotation[1] += 2.0f * TIME.delta;
|
||||||
|
#endif
|
||||||
entityPositionSetRotation(ent1, ent1Pos, rotation);
|
entityPositionSetRotation(ent1, ent1Pos, rotation);
|
||||||
|
|
||||||
uiUpdate();
|
uiUpdate();
|
||||||
|
|||||||
@@ -153,11 +153,7 @@ errorret_t meshDrawGL(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Shader may have model matrix here
|
// Shader may have model matrix here
|
||||||
#ifdef DUSK_OPENGL_LEGACY
|
errorChain(shaderLegacyMatrixUpdate());
|
||||||
errorChain(shaderLegacyMatrixUpdate());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// glDrawArrays(mesh->primitiveType, offset, count);
|
|
||||||
glDrawArrays(mesh->primitiveType, 0, count);
|
glDrawArrays(mesh->primitiveType, 0, count);
|
||||||
errorChain(errorGLCheck());
|
errorChain(errorGLCheck());
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -223,6 +223,9 @@ errorret_t shaderSetTextureGL(
|
|||||||
"Only one texture supported in legacy opengl."
|
"Only one texture supported in legacy opengl."
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// glActiveTexture(GL_TEXTURE0);
|
||||||
|
errorChain(errorGLCheck());
|
||||||
|
|
||||||
if(texture == NULL) {
|
if(texture == NULL) {
|
||||||
glDisable(GL_TEXTURE_2D);
|
glDisable(GL_TEXTURE_2D);
|
||||||
errorChain(errorGLCheck());
|
errorChain(errorGLCheck());
|
||||||
@@ -233,9 +236,23 @@ errorret_t shaderSetTextureGL(
|
|||||||
errorChain(errorGLCheck());
|
errorChain(errorGLCheck());
|
||||||
glBindTexture(GL_TEXTURE_2D, texture->id);
|
glBindTexture(GL_TEXTURE_2D, texture->id);
|
||||||
errorChain(errorGLCheck());
|
errorChain(errorGLCheck());
|
||||||
|
|
||||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
errorChain(errorGLCheck());
|
errorChain(errorGLCheck());
|
||||||
|
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
|
||||||
#else
|
#else
|
||||||
assertNotNull(shader->definition, "Shader definition cannot be null");
|
assertNotNull(shader->definition, "Shader definition cannot be null");
|
||||||
assertNotNull(shader->definition->setTexture, "Shader cannot do textures.");
|
assertNotNull(shader->definition->setTexture, "Shader cannot do textures.");
|
||||||
@@ -254,8 +271,46 @@ errorret_t shaderSetColorGL(
|
|||||||
assertStrLenMin(name, 1, "Uniform name cannot be empty");
|
assertStrLenMin(name, 1, "Uniform name cannot be empty");
|
||||||
|
|
||||||
#ifdef DUSK_OPENGL_LEGACY
|
#ifdef DUSK_OPENGL_LEGACY
|
||||||
glColor4ub(color.r, color.g, color.b, color.a);
|
// if(color.a == 0) {
|
||||||
errorChain(errorGLCheck());
|
// glDisable(GL_TEXTURE_2D);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// errorOk();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// glActiveTexture(GL_TEXTURE1);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
|
||||||
|
// if(color.r == 255 && color.g == 255 && color.b == 255) {
|
||||||
|
// glDisable(GL_TEXTURE_2D);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// errorOk();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// glEnable(GL_TEXTURE_2D);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glBindTexture(GL_TEXTURE_2D, TEXTURE_WHITE.id);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
|
||||||
|
// GLfloat tint[4] = {
|
||||||
|
// ((float_t)color.r) / 255.0f,
|
||||||
|
// ((float_t)color.g) / 255.0f,
|
||||||
|
// ((float_t)color.b) / 255.0f,
|
||||||
|
// ((float_t)color.a) / 255.0f
|
||||||
|
// };
|
||||||
|
// glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, tint);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
|
// glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
|
||||||
|
// errorChain(errorGLCheck());
|
||||||
#else
|
#else
|
||||||
GLint location;
|
GLint location;
|
||||||
errorChain(shaderParamGetLocationGL(shader, name, &location));
|
errorChain(shaderParamGetLocationGL(shader, name, &location));
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ typedef struct {
|
|||||||
errorret_t (*setMaterial)(shadergl_t *, const shadermaterial_t *);
|
errorret_t (*setMaterial)(shadergl_t *, const shadermaterial_t *);
|
||||||
|
|
||||||
#ifdef DUSK_OPENGL_LEGACY
|
#ifdef DUSK_OPENGL_LEGACY
|
||||||
void *nothing;
|
|
||||||
#else
|
#else
|
||||||
errorret_t (*setTexture)(shadergl_t *, const char_t *, texture_t *);
|
errorret_t (*setTexture)(shadergl_t *, const char_t *, texture_t *);
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,7 @@
|
|||||||
|
|
||||||
#ifdef DUSK_OPENGL_LEGACY
|
#ifdef DUSK_OPENGL_LEGACY
|
||||||
shaderdefinition_t SHADER_UNLIT_DEFINITION = {
|
shaderdefinition_t SHADER_UNLIT_DEFINITION = {
|
||||||
.platform = { 0 },
|
.setMaterial = shaderUnlitSetMaterial,
|
||||||
.upload = shaderUnlitUpload
|
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
errorret_t shaderUnlitSetTextureGL(
|
errorret_t shaderUnlitSetTextureGL(
|
||||||
|
|||||||
Reference in New Issue
Block a user