summaryrefslogtreecommitdiff
path: root/plugins/peopsxgl/prim.c
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2016-05-10 21:34:27 +0100
committeriCatButler <i.am.catbutler@gmail.com>2016-05-10 21:34:27 +0100
commitb5a738748175a460f856a1ed8a2e29fa26ebfb14 (patch)
tree8cc060819d9433940859de000bbb986cc45d7458 /plugins/peopsxgl/prim.c
parent1a30cfb9510d4e46960010735d26a344f75cb328 (diff)
downloadpcsxr-b5a738748175a460f856a1ed8a2e29fa26ebfb14.tar.gz
Add PGXP visual debug mode
Toggles using F11 Red = low precision Blue = high precision Yellow = Sprite
Diffstat (limited to 'plugins/peopsxgl/prim.c')
-rwxr-xr-xplugins/peopsxgl/prim.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/plugins/peopsxgl/prim.c b/plugins/peopsxgl/prim.c
index ffa3fcf3..eb4b7f01 100755
--- a/plugins/peopsxgl/prim.c
+++ b/plugins/peopsxgl/prim.c
@@ -25,6 +25,7 @@
#include "draw.h"
#include "soft.h"
#include "texture.h"
+#include "PGXP_gpu.h"
////////////////////////////////////////////////////////////////////////
// defines
@@ -149,6 +150,13 @@ unsigned short BGR24to16 (uint32_t BGR)
static __inline void PRIMdrawTexturedQuad(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTriQuad(vertex1, vertex2, vertex4, vertex3);
+ return;
+ }
+
+
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2fv(&vertex1->sow);
PGXP_glVertexfv(&vertex1->x);
@@ -169,6 +177,12 @@ static __inline void PRIMdrawTexturedQuad(OGLVertex* vertex1, OGLVertex* vertex2
static __inline void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTri(vertex1, vertex2, vertex3);
+ return;
+ }
+
glBegin(GL_TRIANGLES);
glTexCoord2fv(&vertex1->sow);
PGXP_glVertexfv(&vertex1->x);
@@ -186,6 +200,12 @@ static __inline void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2,
static __inline void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTri(vertex1, vertex2, vertex3);
+ return;
+ }
+
glBegin(GL_TRIANGLES);
SETPCOL(vertex1);
@@ -207,6 +227,12 @@ static __inline void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* v
static __inline void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTriQuad(vertex1, vertex2, vertex4, vertex3);
+ return;
+ }
+
glBegin(GL_TRIANGLE_STRIP);
SETPCOL(vertex1);
glTexCoord2fv(&vertex1->sow);
@@ -230,6 +256,12 @@ static __inline void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVerte
static __inline void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTri(vertex1, vertex2, vertex3);
+ return;
+ }
+
glBegin(GL_TRIANGLES);
PGXP_glVertexfv(&vertex1->x);
PGXP_glVertexfv(&vertex2->x);
@@ -242,6 +274,12 @@ static __inline void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVert
static __inline void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTriQuad(vertex1, vertex3, vertex2, vertex4);
+ return;
+ }
+
glBegin(GL_TRIANGLE_STRIP);
PGXP_glVertexfv(&vertex1->x);
PGXP_glVertexfv(&vertex3->x);
@@ -255,6 +293,12 @@ static __inline void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2,
static __inline void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTri(vertex1, vertex2, vertex3);
+ return;
+ }
+
glBegin(GL_TRIANGLES);
SETPCOL(vertex1);
PGXP_glVertexfv(&vertex1->x);
@@ -272,6 +316,12 @@ static __inline void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vert
static __inline void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugTriQuad(vertex1, vertex3, vertex2, vertex4);
+ return;
+ }
+
glBegin(GL_TRIANGLE_STRIP);
SETPCOL(vertex1);
PGXP_glVertexfv(&vertex1->x);
@@ -291,6 +341,12 @@ static __inline void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* ver
static __inline void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugQuad(vertex1, vertex2, vertex3, vertex4);
+ return;
+ }
+
glBegin(GL_QUADS);
SETPCOL(vertex1);
@@ -306,6 +362,12 @@ static __inline void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGL
static __inline void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugQuad(vertex1, vertex2, vertex3, vertex4);
+ return;
+ }
+
glBegin(GL_QUADS);
SETPCOL(vertex1);
@@ -327,6 +389,12 @@ static __inline void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,
static __inline void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2,
OGLVertex* vertex3, OGLVertex* vertex4)
{
+ if (PGXP_vDebug)
+ {
+ PGXP_DrawDebugQuad(vertex1, vertex2, vertex3, vertex4);
+ return;
+ }
+
glBegin(GL_QUADS);
PGXP_glVertexfv(&vertex1->x);
PGXP_glVertexfv(&vertex2->x);