Added proper Trails support.
This commit is contained in:
+12
-2
@@ -1202,8 +1202,18 @@ rasterRenderFast(Raster *raster, int32 x, int32 y)
|
||||
case Raster::CAMERA:
|
||||
setActiveTexture(0);
|
||||
glBindTexture(GL_TEXTURE_2D, natdst->texid);
|
||||
/*glCopyTexSubImage2D(GL_TEXTURE_2D, 0, x, (dst->height-src->height)-y,
|
||||
0, 0, src->width, src->height);*/
|
||||
SceDisplayFrameBuf pParam;
|
||||
pParam.size = sizeof(SceDisplayFrameBuf);
|
||||
sceDisplayGetFrameBuf(&pParam, SCE_DISPLAY_SETBUF_NEXTFRAME);
|
||||
sceGxmTransferCopy(960, 544, 0, SCE_GXM_COLOR_MASK_A,
|
||||
SCE_GXM_TRANSFER_COLORKEY_NONE,
|
||||
SCE_GXM_TRANSFER_FORMAT_U8U8U8U8_ABGR,
|
||||
SCE_GXM_TRANSFER_LINEAR,
|
||||
pParam.base, 0, 0, 960 * 4,
|
||||
SCE_GXM_TRANSFER_FORMAT_U8U8U8_BGR,
|
||||
SCE_GXM_TRANSFER_LINEAR,
|
||||
(uint8_t*)vglGetTexDataPointer(GL_TEXTURE_2D) + 1023 * 1024 * 3, 0, 0, - 1024 * 3,
|
||||
NULL, SCE_GXM_TRANSFER_FRAGMENT_SYNC, NULL);
|
||||
glBindTexture(GL_TEXTURE_2D, boundTexture[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
+2
-6
@@ -256,11 +256,9 @@ defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
||||
geo->morphTargets[0].normals,
|
||||
header->totalNumVertex, a->stride);
|
||||
} else if (!hasNormals) {
|
||||
int i = 0;
|
||||
while (i < header->totalNumVertex) {
|
||||
for (int i = 0; i < header->totalNumVertex; i++) {
|
||||
float *verts_f = (float*)&verts[12 + i * 36];
|
||||
verts_f[0] = verts_f[1] = verts_f[2] = 0;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,13 +277,11 @@ defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
||||
inst++;
|
||||
}
|
||||
} else if (!isPrelit) {
|
||||
int i = 0;
|
||||
while (i < header->totalNumVertex) {
|
||||
for (int i = 0; i < header->totalNumVertex; i++) {
|
||||
verts[24 + i * 36] = 0;
|
||||
verts[25 + i * 36] = 0;
|
||||
verts[26 + i * 36] = 0;
|
||||
verts[27 + i * 36] = 255;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -120,15 +120,15 @@ rasterCreateCameraTexture(Raster *raster)
|
||||
|
||||
#ifdef RW_GLES
|
||||
// glReadPixels only supports GL_RGBA
|
||||
natras->internalFormat = GL_RGBA;
|
||||
natras->format = GL_RGBA;
|
||||
natras->internalFormat = GL_RGB;
|
||||
natras->format = GL_RGB;
|
||||
natras->type = GL_UNSIGNED_BYTE;
|
||||
natras->bpp = 4;
|
||||
natras->bpp = 3;
|
||||
#endif
|
||||
|
||||
#ifndef PSP2_NO_DXT_TEXTURES
|
||||
natras->internalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
||||
#endif
|
||||
//#ifndef PSP2_NO_DXT_TEXTURES
|
||||
// natras->internalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
||||
//#endif
|
||||
|
||||
raster->stride = raster->width*natras->bpp;
|
||||
|
||||
|
||||
+3
-9
@@ -148,11 +148,9 @@ skinInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
||||
geo->morphTargets[0].normals,
|
||||
header->totalNumVertex, a->stride);
|
||||
} else if (!hasNormals) {
|
||||
int i = 0;
|
||||
while (i < header->totalNumVertex) {
|
||||
for (int i = 0; i < header->totalNumVertex; i++) {
|
||||
float *verts_f = (float*)&verts[12 + i * 56];
|
||||
verts_f[0] = verts_f[1] = verts_f[2] = 0;
|
||||
i++;
|
||||
verts_f[0] = verts_f[1] = verts_f[2] = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,13 +162,11 @@ skinInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
||||
geo->colors,
|
||||
header->totalNumVertex, a->stride);
|
||||
} else if (!isPrelit) {
|
||||
int i = 0;
|
||||
while (i < header->totalNumVertex) {
|
||||
for (int i = 0; i < header->totalNumVertex; i++) {
|
||||
verts[24 + i * 56] = 0;
|
||||
verts[25 + i * 56] = 0;
|
||||
verts[26 + i * 56] = 0;
|
||||
verts[27 + i * 56] = 255;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,8 +264,6 @@ skinRenderCB(Atomic *atomic, InstanceDataHeader *header)
|
||||
|
||||
skinShader->use();
|
||||
|
||||
|
||||
|
||||
while(n--){
|
||||
m = inst->material;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user