diff --git a/sis/re3-gles1.pkg b/sis/re3-gles1.pkg new file mode 100644 index 0000000..b76f1c5 --- /dev/null +++ b/sis/re3-gles1.pkg @@ -0,0 +1,22 @@ +#{"GTA III"},(0xe0d67647),1,0,0 + +[0x101F7961], 0, 0, 0, {"S60ProductID"} +[0x1028315F], 0, 0, 0, {"S60ProductID"} +[0x20022E6D], 0, 0, 0, {"S60ProductID"} + +%{"nnproject"} +:"nnproject" + +;IF (NOT package(0x20009A80)) OR (NOT package(0x2002372A)) ; old or missing openc +; "incompatible_openc.txt"-"", FT, FORCEABORT +;ENDIF + +;IF exists("z:\system\install\Series60v5.2.sis") AND exists("z:\sys\bin\libGLESv2.dll") +; "$(EPOCROOT)epoc32\release\$(PLATFORM)\$(TARGET)\re3.exe"-"!:\sys\bin\re3.exe" +;ELSE +; "$(EPOCROOT)epoc32\release\$(PLATFORM)\$(TARGET)\re3_gles1.exe"-"!:\sys\bin\re3.exe" +;ENDIF +"$(EPOCROOT)epoc32\release\$(PLATFORM)\$(TARGET)\re3_gles1.exe"-"!:\sys\bin\re3.exe" +"$(EPOCROOT)\epoc32\data\z\private\10003a3f\import\apps\re3_reg.rsc" - "!:\private\10003a3f\import\apps\re3_reg.rsc" +"$(EPOCROOT)\epoc32\data\z\resource\apps\re3.rsc" - "!:\resource\apps\re3.rsc" +"$(EPOCROOT)\epoc32\data\z\resource\apps\re3_icon.mif" - "!:\resource\apps\re3_icon.mif" \ No newline at end of file diff --git a/vendor/librw/src/gl/gl3immed.cpp b/vendor/librw/src/gl/gl3immed.cpp index b38f776..a4b7474 100644 --- a/vendor/librw/src/gl/gl3immed.cpp +++ b/vendor/librw/src/gl/gl3immed.cpp @@ -113,10 +113,18 @@ im2DRenderPrimitive(PrimitiveType primType, void *vertices, int32 numVertices) glVertexAttribPointer(ATTRIB_POS, 4, GL_FLOAT, GL_FALSE, sizeof(Im2DVertex), (uint8*)vertices + 0); glEnableVertexAttribArray(ATTRIB_COLOR); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im2DVertex), (uint8*)vertices + OFFSET_OF(Im2DVertex, r)); + #else glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im2DVertex), (uint8*)vertices + offsetof(Im2DVertex, r)); + #endif glEnableVertexAttribArray(ATTRIB_TEXCOORDS0); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im2DVertex), (uint8*)vertices + OFFSET_OF(Im2DVertex, u)); + #else glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im2DVertex), (uint8*)vertices + offsetof(Im2DVertex, u)); + #endif glDrawArrays(primTypeMap[primType], 0, numVertices); @@ -146,10 +154,18 @@ im2DRenderIndexedPrimitive(PrimitiveType primType, glVertexAttribPointer(ATTRIB_POS, 4, GL_FLOAT, GL_FALSE, sizeof(Im2DVertex), (uint8*)vertices + 0); glEnableVertexAttribArray(ATTRIB_COLOR); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im2DVertex), (uint8*)vertices + OFFSET_OF(Im2DVertex, r)); + #else glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im2DVertex), (uint8*)vertices + offsetof(Im2DVertex, r)); + #endif glEnableVertexAttribArray(ATTRIB_TEXCOORDS0); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im2DVertex), (uint8*)vertices + OFFSET_OF(Im2DVertex, u)); + #else glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im2DVertex), (uint8*)vertices + offsetof(Im2DVertex, u)); + #endif glDrawElements(primTypeMap[primType], numIndices, GL_UNSIGNED_SHORT, indices); @@ -216,10 +232,18 @@ im3DRenderPrimitive(PrimitiveType primType) glVertexAttribPointer(ATTRIB_POS, 3, GL_FLOAT, GL_FALSE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + 0); glEnableVertexAttribArray(ATTRIB_COLOR); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + OFFSET_OF(Im3DVertex, r)); + #else glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + offsetof(Im3DVertex, r)); + #endif glEnableVertexAttribArray(ATTRIB_TEXCOORDS0); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + OFFSET_OF(Im3DVertex, u)); + #else glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + offsetof(Im3DVertex, u)); + #endif glDrawArrays(primTypeMap[primType], 0, num3DVertices); @@ -240,10 +264,18 @@ im3DRenderIndexedPrimitive(PrimitiveType primType, void *indices, int32 numIndic glVertexAttribPointer(ATTRIB_POS, 3, GL_FLOAT, GL_FALSE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + 0); glEnableVertexAttribArray(ATTRIB_COLOR); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + OFFSET_OF(Im3DVertex, r)); + #else glVertexAttribPointer(ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + offsetof(Im3DVertex, r)); + #endif glEnableVertexAttribArray(ATTRIB_TEXCOORDS0); + #ifdef __SYMBIAN32__ + glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + OFFSET_OF(Im3DVertex, u)); + #else glVertexAttribPointer(ATTRIB_TEXCOORDS0, 2, GL_FLOAT, GL_FALSE, sizeof(Im3DVertex), (uint8*)currentIm3dVertices + offsetof(Im3DVertex, u)); + #endif glDrawElements(primTypeMap[primType], numIndices, GL_UNSIGNED_SHORT, indices); diff --git a/vendor/librw/src/rwbase.h b/vendor/librw/src/rwbase.h index 45285b7..87a6f33 100644 --- a/vendor/librw/src/rwbase.h +++ b/vendor/librw/src/rwbase.h @@ -11,11 +11,13 @@ #ifdef __SYMBIAN32__ #undef stderr #define stderr stdout - #ifdef S60V5 - #define OFFSET_OF(type, member) ((size_t)&(((type*)0)->member)) - #else - #define OFFSET_OF offsetof - #endif + +#ifdef OFFSET_OF +#undef OFFSET_OF +#endif + +#define OFFSET_OF(type, member) \ + ((size_t)((char*)&(((type*)0)->member) - (char*)0)) #endif // TODO: clean up the opengl defines @@ -121,7 +123,7 @@ struct LLLink #define LLLinkGetData(linkvar,type,entry) \ - ((type*)(((rw::uint8*)(linkvar))-OFFSET_OF(type,entry))) + ((type*)(((rw::uint8*)(linkvar)) - OFFSET_OF(type, entry))) // Have to be careful since the link might be deleted. #define FORLIST(_link, _list) \