From b1f5a6ce4d7b9156910078300bfdf4ff0fd8ccf0 Mon Sep 17 00:00:00 2001 From: iCatButler Date: Sat, 26 Mar 2016 10:07:46 +0000 Subject: - Move pgxp_gpu source files into correct folder. - Trace 16 bit reads and writes, invalidate register or memory (fixes UI glitches) --- win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj | 4 +- .../peopsxgl/gpuPeopsOpenGL.vcxproj.filters | 4 +- win32/plugins/peopsxgl/pgxp_gpu.c | 90 ---------------------- win32/plugins/peopsxgl/pgxp_gpu.h | 34 -------- 4 files changed, 4 insertions(+), 128 deletions(-) delete mode 100644 win32/plugins/peopsxgl/pgxp_gpu.c delete mode 100644 win32/plugins/peopsxgl/pgxp_gpu.h (limited to 'win32/plugins') diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj index f65ce2cb..a9bf432e 100755 --- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj +++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj @@ -152,7 +152,7 @@ - + %(AdditionalIncludeDirectories) %(PreprocessorDefinitions) @@ -222,7 +222,7 @@ - + diff --git a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters index d34a9a34..4090a47f 100755 --- a/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters +++ b/win32/plugins/peopsxgl/gpuPeopsOpenGL.vcxproj.filters @@ -45,7 +45,7 @@ peopsxgl - + peopsxgl @@ -93,7 +93,7 @@ peopsxgl - + peopsxgl diff --git a/win32/plugins/peopsxgl/pgxp_gpu.c b/win32/plugins/peopsxgl/pgxp_gpu.c deleted file mode 100644 index 5b64382a..00000000 --- a/win32/plugins/peopsxgl/pgxp_gpu.c +++ /dev/null @@ -1,90 +0,0 @@ -/*************************************************************************** -* Copyright (C) 2016 by iCatButler * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) any later version. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * -***************************************************************************/ - -/************************************************************************** -* pgxp_gpu.c -* PGXP - Parallel/Precision Geometry Xform Pipeline -* -* Created on: 25 Mar 2016 -* Author: iCatButler -***************************************************************************/ - -#include "pgxp_gpu.h" -#include "stdafx.h" -#include "externals.h" - -#include - -typedef struct -{ - float x; - float y; - float z; - unsigned int valid; - unsigned int count; -} PGXP_vertex; - -const unsigned int primStrideTable[] = { 1, 2, 1, 2, 2, 3, 2, 3, 0 }; -const unsigned int primCountTable[] = { 3, 3, 4, 4, 3, 3, 4, 4, 0 }; - -PGXP_vertex* PGXP_Mem = NULL; // pointer to parallel memory -unsigned int currentAddr = 0; // address of current DMA - -// Set current DMA address and pointer to parallel memory -void CALLBACK GPUpgxpMemory(unsigned int addr, unsigned char* pVRAM) -{ - if (pVRAM) - PGXP_Mem = (PGXP_vertex*)(pVRAM); - currentAddr = addr; -} - -// Set current DMA address -void PGXP_SetAddress(unsigned int addr) -{ - currentAddr = addr; -} - -// Get parallel vertex values -int PGXP_GetVertices(unsigned int* addr, void* pOutput) -{ - unsigned int primCmd = ((*addr >> 24) & 0xff); // primitive command - unsigned int primIdx = (primCmd - 0x20) >> 2; // index to primitive lookup - OGLVertex* pVertex = (OGLVertex*)pOutput; // pointer to output vertices - unsigned int stride = primStrideTable[primIdx]; // stride between vertices - unsigned int count = primCountTable[primIdx]; // number of vertices - PGXP_vertex* primStart = NULL; // pointer to first vertex - - if (PGXP_Mem == NULL) - return 0; - - // Offset to start of primitive - primStart = &PGXP_Mem[currentAddr + 1]; - - for (unsigned i = 0; i < count; ++i) - { - if (primStart[stride * i].valid) - { - pVertex[i].x = primStart[stride * i].x; - pVertex[i].y = primStart[stride * i].y; - } - } - - return 1; -} - diff --git a/win32/plugins/peopsxgl/pgxp_gpu.h b/win32/plugins/peopsxgl/pgxp_gpu.h deleted file mode 100644 index 1777dc19..00000000 --- a/win32/plugins/peopsxgl/pgxp_gpu.h +++ /dev/null @@ -1,34 +0,0 @@ -/*************************************************************************** -* Copyright (C) 2016 by iCatButler * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) any later version. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * -***************************************************************************/ - -/************************************************************************** -* pgxp_gpu.h -* PGXP - Parallel/Precision Geometry Xform Pipeline -* -* Created on: 25 Mar 2016 -* Author: iCatButler -***************************************************************************/ - -#ifndef _PGXP_GPU_H_ -#define _PGXP_GPU_H_ - -void PGXP_SetAddress(unsigned int addr); -int PGXP_GetVertices(unsigned int* addr, void* pOutput); - -#endif // _PGXP_GPU_H_ -- cgit v1.2.3