From 8e214158a2822a83657c258a6e13dcc35152e2cb Mon Sep 17 00:00:00 2001 From: Rinnegatamante Date: Sat, 26 Sep 2020 10:53:13 +0200 Subject: [PATCH] Some adaptments for vita build. --- .gitignore | 3 +++ Makefile | 1 + src/gl/gl3raster.cpp | 36 +++++++++++------------------------- src/gl/gl3shader.cpp | 11 +---------- src/gl/rwgl3.h | 7 ++++++- 5 files changed, 22 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 6dbc333..b54dbe9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +*.o +*.a + /bin /build /obj diff --git a/Makefile b/Makefile index 622a077..d5591bb 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/src/gl/gl3raster.cpp b/src/gl/gl3raster.cpp index 4e1aeab..c6050db 100644 --- a/src/gl/gl3raster.cpp +++ b/src/gl/gl3raster.cpp @@ -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; } diff --git a/src/gl/gl3shader.cpp b/src/gl/gl3shader.cpp index b51623e..b94503c 100644 --- a/src/gl/gl3shader.cpp +++ b/src/gl/gl3shader.cpp @@ -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; } diff --git a/src/gl/rwgl3.h b/src/gl/rwgl3.h index f003c43..ccaba26 100644 --- a/src/gl/rwgl3.h +++ b/src/gl/rwgl3.h @@ -4,6 +4,10 @@ #include #endif +#ifdef PSP2 +#include +#include +#else #ifndef LIBRW_GLAD #include #else @@ -16,6 +20,7 @@ #include #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;