Some adaptments for vita build.

This commit is contained in:
Rinnegatamante
2020-09-26 10:53:13 +02:00
parent 27112f2c22
commit 8e214158a2
5 changed files with 22 additions and 36 deletions
+3
View File
@@ -1,3 +1,6 @@
*.o
*.a
/bin
/build
/obj
+1
View File
@@ -12,6 +12,7 @@ CXX = $(PREFIX)-g++
AR = $(PREFIX)-gcc-ar
CFLAGS = -g -Wl,-q -O2 -ffast-math -mtune=cortex-a9 -mfpu=neon -ftree-vectorize \
-DPSP2 -DDEBUG -DRW_GL3 -DLIBRW_GLAD
CXXFLAGS = $(CFLAGS)
ASFLAGS = $(CFLAGS)
all: $(TARGET).a
+11 -25
View File
@@ -26,7 +26,7 @@ rasterCreateTexture(Raster *raster)
Gl3Raster *natras = PLUGINOFFSET(Gl3Raster, raster, nativeRasterOffset);
switch(raster->format & 0xF00){
case Raster::C8888:
natras->internalFormat = GL_RGBA8;
natras->internalFormat = GL_RGBA;
natras->format = GL_RGBA;
natras->type = GL_UNSIGNED_BYTE;
natras->hasAlpha = 1;
@@ -34,7 +34,7 @@ rasterCreateTexture(Raster *raster)
raster->depth = 32;
break;
case Raster::C888:
natras->internalFormat = GL_RGB8;
natras->internalFormat = GL_RGB;
natras->format = GL_RGB;
natras->type = GL_UNSIGNED_BYTE;
natras->hasAlpha = 0;
@@ -42,7 +42,7 @@ rasterCreateTexture(Raster *raster)
raster->depth = 24;
break;
case Raster::C1555:
natras->internalFormat = GL_RGB5_A1;
natras->internalFormat = GL_RGBA;
natras->format = GL_RGBA;
natras->type = GL_UNSIGNED_SHORT_5_5_5_1;
natras->hasAlpha = 1;
@@ -89,7 +89,7 @@ rasterCreateCameraTexture(Raster *raster)
Gl3Raster *natras = PLUGINOFFSET(Gl3Raster, raster, nativeRasterOffset);
switch(raster->format & 0xF00){
case Raster::C8888:
natras->internalFormat = GL_RGBA8;
natras->internalFormat = GL_RGBA;
natras->format = GL_RGBA;
natras->type = GL_UNSIGNED_BYTE;
natras->hasAlpha = 1;
@@ -97,14 +97,14 @@ rasterCreateCameraTexture(Raster *raster)
break;
case Raster::C888:
default:
natras->internalFormat = GL_RGB8;
natras->internalFormat = GL_RGB;
natras->format = GL_RGB;
natras->type = GL_UNSIGNED_BYTE;
natras->hasAlpha = 0;
natras->bpp = 3;
break;
case Raster::C1555:
natras->internalFormat = GL_RGB5_A1;
natras->internalFormat = GL_RGBA;
natras->format = GL_RGBA;
natras->type = GL_UNSIGNED_SHORT_5_5_5_1;
natras->hasAlpha = 1;
@@ -136,7 +136,7 @@ rasterCreateCameraTexture(Raster *raster)
glGenFramebuffers(1, &natras->fbo);
bindFramebuffer(natras->fbo);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, natras->texid, 0);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, natras->texid, 0);
bindFramebuffer(0);
natras->fboMate = nil;
@@ -172,7 +172,7 @@ rasterCreateZbuffer(Raster *raster)
raster->stride = 0;
raster->pixels = nil;
natras->internalFormat = GL_DEPTH_COMPONENT;
/*natras->internalFormat = GL_DEPTH_COMPONENT;
natras->format = GL_DEPTH_COMPONENT;
natras->type = GL_UNSIGNED_BYTE;
@@ -188,7 +188,7 @@ rasterCreateZbuffer(Raster *raster)
bindTexture(prev);
natras->fbo = 0;
natras->fboMate = nil;
natras->fboMate = nil; */
return raster;
}
@@ -270,23 +270,9 @@ memset(px, 0, raster->stride*raster->height);
raster->pixels = px;
if(lockMode & Raster::LOCKREAD || !(lockMode & Raster::LOCKNOFETCH)){
#ifdef RW_GLES
GLuint fbo;
GLenum e;
glGenFramebuffers(1, &fbo);
bindFramebuffer(fbo);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, natras->texid, 0);
e = glCheckFramebufferStatus(GL_FRAMEBUFFER);
assert(natras->format == GL_RGBA);
glReadPixels(0, 0, raster->width, raster->height, natras->format, natras->type, px);
//e = glGetError(); printf("GL err4 %x (%x)\n", e, natras->format);
bindFramebuffer(0);
glDeleteFramebuffers(1, &fbo);
#else
uint32 prev = bindTexture(natras->texid);
glGetTexImage(GL_TEXTURE_2D, level, natras->format, natras->type, px);
memcpy_neon(px, vglGetTexDataPointer(GL_TEXTURE_2D), raster->stride*raster->height);
bindTexture(prev);
#endif
}
raster->privateFlags = lockMode;
@@ -516,7 +502,7 @@ destroyNativeRaster(void *object, int32 offset, int32)
Gl3Raster *oldfb = PLUGINOFFSET(Gl3Raster, natras->fboMate, nativeRasterOffset);
if(oldfb->fbo){
bindFramebuffer(oldfb->fbo);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, 0, 0);
//glFramebufferTexture(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, 0, 0);
}
oldfb->fboMate = nil;
}
+1 -10
View File
@@ -149,16 +149,7 @@ linkprogram(GLint vs, GLint fs, GLuint *program)
glAttachShader(prog, vs);
glAttachShader(prog, fs);
glLinkProgram(prog);
glGetProgramiv(prog, GL_LINK_STATUS, &success);
if(!success){
fprintf(stderr, "Error in program\n");
glGetProgramiv(prog, GL_INFO_LOG_LENGTH, &len);
log = (char*)rwMalloc(len, MEMDUR_FUNCTION);
glGetProgramInfoLog(prog, len, nil, log);
fprintf(stderr, "%s\n", log);
rwFree(log);
return 1;
}
*program = prog;
return 0;
}
+6 -1
View File
@@ -4,6 +4,10 @@
#include <switch.h>
#endif
#ifdef PSP2
#include <vitasdk.h>
#include <vitaGL.h>
#else
#ifndef LIBRW_GLAD
#include <GL/glew.h>
#else
@@ -16,6 +20,7 @@
#include <GLFW/glfw3.h>
#endif
#endif
#endif
namespace rw {
@@ -25,7 +30,7 @@ struct EngineOpenParams
#ifdef LIBRW_SDL2
SDL_Window **window;
bool32 fullscreen;
#else
#elif !defined(PSP2)
GLFWwindow **window;
#endif
int width, height;