mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Improve viewport terminology a bit. No functional change.
This commit is contained in:
parent
452ed71e68
commit
f3b0562bd8
9 changed files with 63 additions and 55 deletions
|
@ -199,12 +199,12 @@ static const CommandTableEntry commandTable[] = {
|
|||
{GE_CMD_PATCHCULLENABLE, FLAG_FLUSHBEFOREONCHANGE},
|
||||
|
||||
// Viewport.
|
||||
{GE_CMD_VIEWPORTX1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTY1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTX2, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTY2, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTZ1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTZ2, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTXSCALE, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTYSCALE, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTZSCALE, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTXCENTER, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTYCENTER, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTZCENTER, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_ViewportType},
|
||||
|
||||
// Region
|
||||
{GE_CMD_REGION1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, &DIRECTX9_GPU::Execute_Region},
|
||||
|
@ -903,8 +903,8 @@ void DIRECTX9_GPU::Execute_ViewportType(u32 op, u32 diff) {
|
|||
gstate_c.framebufChanged = true;
|
||||
gstate_c.textureChanged |= TEXCHANGE_PARAMSONLY;
|
||||
switch (op >> 24) {
|
||||
case GE_CMD_VIEWPORTZ1:
|
||||
case GE_CMD_VIEWPORTZ2:
|
||||
case GE_CMD_VIEWPORTZSCALE:
|
||||
case GE_CMD_VIEWPORTZCENTER:
|
||||
shaderManager_->DirtyUniform(DIRTY_PROJMATRIX | DIRTY_DEPTHRANGE);
|
||||
break;
|
||||
}
|
||||
|
@ -1598,12 +1598,12 @@ void DIRECTX9_GPU::Execute_Generic(u32 op, u32 diff) {
|
|||
shaderManager_->DirtyUniform(DIRTY_LIGHT3);
|
||||
break;
|
||||
|
||||
case GE_CMD_VIEWPORTX1:
|
||||
case GE_CMD_VIEWPORTY1:
|
||||
case GE_CMD_VIEWPORTX2:
|
||||
case GE_CMD_VIEWPORTY2:
|
||||
case GE_CMD_VIEWPORTZ1:
|
||||
case GE_CMD_VIEWPORTZ2:
|
||||
case GE_CMD_VIEWPORTXSCALE:
|
||||
case GE_CMD_VIEWPORTYSCALE:
|
||||
case GE_CMD_VIEWPORTXCENTER:
|
||||
case GE_CMD_VIEWPORTYCENTER:
|
||||
case GE_CMD_VIEWPORTZSCALE:
|
||||
case GE_CMD_VIEWPORTZCENTER:
|
||||
Execute_ViewportType(op, diff);
|
||||
break;
|
||||
|
||||
|
|
|
@ -208,12 +208,12 @@ static const CommandTableEntry commandTable[] = {
|
|||
{GE_CMD_PATCHCULLENABLE, FLAG_FLUSHBEFOREONCHANGE},
|
||||
|
||||
// Viewport.
|
||||
{GE_CMD_VIEWPORTX1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTY1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTX2, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTY2, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTZ1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, DIRTY_DEPTHRANGE, &GLES_GPU::Execute_ViewportZType},
|
||||
{GE_CMD_VIEWPORTZ2, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, DIRTY_DEPTHRANGE, &GLES_GPU::Execute_ViewportZType},
|
||||
{GE_CMD_VIEWPORTXSCALE, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTYSCALE, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTXCENTER, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTYCENTER, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_ViewportType},
|
||||
{GE_CMD_VIEWPORTZSCALE, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, DIRTY_DEPTHRANGE, &GLES_GPU::Execute_ViewportZType},
|
||||
{GE_CMD_VIEWPORTZCENTER, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, DIRTY_DEPTHRANGE, &GLES_GPU::Execute_ViewportZType},
|
||||
|
||||
// Region
|
||||
{GE_CMD_REGION1, FLAG_FLUSHBEFOREONCHANGE | FLAG_EXECUTEONCHANGE, 0, &GLES_GPU::Execute_Region},
|
||||
|
@ -1778,12 +1778,12 @@ void GLES_GPU::Execute_Generic(u32 op, u32 diff) {
|
|||
Execute_Light3Param(op, diff);
|
||||
break;
|
||||
|
||||
case GE_CMD_VIEWPORTX1:
|
||||
case GE_CMD_VIEWPORTY1:
|
||||
case GE_CMD_VIEWPORTX2:
|
||||
case GE_CMD_VIEWPORTY2:
|
||||
case GE_CMD_VIEWPORTZ1:
|
||||
case GE_CMD_VIEWPORTZ2:
|
||||
case GE_CMD_VIEWPORTXSCALE:
|
||||
case GE_CMD_VIEWPORTYSCALE:
|
||||
case GE_CMD_VIEWPORTXCENTER:
|
||||
case GE_CMD_VIEWPORTYCENTER:
|
||||
case GE_CMD_VIEWPORTZSCALE:
|
||||
case GE_CMD_VIEWPORTZCENTER:
|
||||
Execute_ViewportType(op, diff);
|
||||
break;
|
||||
|
||||
|
|
|
@ -829,6 +829,10 @@ void TransformDrawEngine::ApplyDrawState(int prim) {
|
|||
// Yscreen = -offsetY + vpYCenter + vpYScale * Yview
|
||||
// Zscreen = vpZCenter + vpZScale * Zview
|
||||
|
||||
// The viewport is normally centered at 2048,2048 but can also be centered at other locations.
|
||||
// Offset is subtracted from the viewport center and is also set to values in those ranges, and is set so that the viewport will cover
|
||||
// the desired screen area ([0-480)x[0-272)), so 1808,1912.
|
||||
|
||||
// This means that to get the analogue glViewport we must:
|
||||
float vpX0 = vpXCenter - offsetX - fabsf(vpXScale);
|
||||
float vpY0 = vpYCenter - offsetY + fabsf(vpYScale); // Need to account for sign of Y
|
||||
|
@ -860,6 +864,10 @@ void TransformDrawEngine::ApplyDrawState(int prim) {
|
|||
float hScale = 1.0f;
|
||||
float yOffset = 0.0f;
|
||||
|
||||
if (vpWidth < 200 && vpWidth != vpHeight) {
|
||||
vpWidth++;
|
||||
}
|
||||
|
||||
// If we're within the bounds, we want clipping the viewport way. So leave it be.
|
||||
if (left < 0.0f || right > renderWidth) {
|
||||
float overageLeft = std::max(-left, 0.0f);
|
||||
|
|
|
@ -645,7 +645,7 @@ void GPUCommon::ReapplyGfxStateInternal() {
|
|||
|
||||
// There are a few here in the middle that we shouldn't execute...
|
||||
|
||||
for (int i = GE_CMD_VIEWPORTX1; i < GE_CMD_TRANSFERSTART; i++) {
|
||||
for (int i = GE_CMD_VIEWPORTXSCALE; i < GE_CMD_TRANSFERSTART; i++) {
|
||||
ExecuteOp(gstate.cmdmem[i], 0xFFFFFFFF);
|
||||
}
|
||||
|
||||
|
|
|
@ -653,19 +653,19 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer, int bufsize) {
|
|||
}
|
||||
break;
|
||||
|
||||
case GE_CMD_VIEWPORTX1:
|
||||
case GE_CMD_VIEWPORTY1:
|
||||
case GE_CMD_VIEWPORTX2:
|
||||
case GE_CMD_VIEWPORTY2:
|
||||
snprintf(buffer, bufsize, "Viewport param %i: %f", cmd-GE_CMD_VIEWPORTX1, getFloat24(data));
|
||||
case GE_CMD_VIEWPORTXSCALE:
|
||||
case GE_CMD_VIEWPORTYSCALE:
|
||||
case GE_CMD_VIEWPORTXCENTER:
|
||||
case GE_CMD_VIEWPORTYCENTER:
|
||||
snprintf(buffer, bufsize, "Viewport param %i: %f", cmd-GE_CMD_VIEWPORTXSCALE, getFloat24(data));
|
||||
break;
|
||||
case GE_CMD_VIEWPORTZ1:
|
||||
case GE_CMD_VIEWPORTZSCALE:
|
||||
{
|
||||
float zScale = getFloat24(data) / 65535.f;
|
||||
snprintf(buffer, bufsize, "Viewport Z scale: %f", zScale);
|
||||
}
|
||||
break;
|
||||
case GE_CMD_VIEWPORTZ2:
|
||||
case GE_CMD_VIEWPORTZCENTER:
|
||||
{
|
||||
float zOff = getFloat24(data) / 65535.f;
|
||||
snprintf(buffer, bufsize, "Viewport Z pos: %f", zOff);
|
||||
|
|
|
@ -459,13 +459,13 @@ void NullGPU::ExecuteOp(u32 op, u32 diff) {
|
|||
}
|
||||
break;
|
||||
|
||||
case GE_CMD_VIEWPORTX1:
|
||||
case GE_CMD_VIEWPORTY1:
|
||||
case GE_CMD_VIEWPORTZ1:
|
||||
case GE_CMD_VIEWPORTX2:
|
||||
case GE_CMD_VIEWPORTY2:
|
||||
case GE_CMD_VIEWPORTZ2:
|
||||
DEBUG_LOG(G3D,"DL Viewport param %i: %f", cmd-GE_CMD_VIEWPORTX1, getFloat24(data));
|
||||
case GE_CMD_VIEWPORTXSCALE:
|
||||
case GE_CMD_VIEWPORTYSCALE:
|
||||
case GE_CMD_VIEWPORTZSCALE:
|
||||
case GE_CMD_VIEWPORTXCENTER:
|
||||
case GE_CMD_VIEWPORTYCENTER:
|
||||
case GE_CMD_VIEWPORTZCENTER:
|
||||
DEBUG_LOG(G3D,"DL Viewport param %i: %f", cmd-GE_CMD_VIEWPORTXSCALE, getFloat24(data));
|
||||
break;
|
||||
case GE_CMD_LIGHTENABLE0:
|
||||
case GE_CMD_LIGHTENABLE1:
|
||||
|
|
|
@ -678,12 +678,12 @@ void SoftGPU::ExecuteOp(u32 op, u32 diff)
|
|||
case GE_CMD_LSC0:case GE_CMD_LSC1:case GE_CMD_LSC2:case GE_CMD_LSC3:
|
||||
break;
|
||||
|
||||
case GE_CMD_VIEWPORTX1:
|
||||
case GE_CMD_VIEWPORTY1:
|
||||
case GE_CMD_VIEWPORTZ1:
|
||||
case GE_CMD_VIEWPORTX2:
|
||||
case GE_CMD_VIEWPORTY2:
|
||||
case GE_CMD_VIEWPORTZ2:
|
||||
case GE_CMD_VIEWPORTXSCALE:
|
||||
case GE_CMD_VIEWPORTYSCALE:
|
||||
case GE_CMD_VIEWPORTZSCALE:
|
||||
case GE_CMD_VIEWPORTXCENTER:
|
||||
case GE_CMD_VIEWPORTYCENTER:
|
||||
case GE_CMD_VIEWPORTZCENTER:
|
||||
break;
|
||||
|
||||
case GE_CMD_LIGHTENABLE0:
|
||||
|
|
|
@ -78,12 +78,12 @@ enum GECommand
|
|||
GE_CMD_PROJMATRIXDATA,
|
||||
GE_CMD_TGENMATRIXNUMBER = 0x40,
|
||||
GE_CMD_TGENMATRIXDATA = 0x41,
|
||||
GE_CMD_VIEWPORTX1,
|
||||
GE_CMD_VIEWPORTY1,
|
||||
GE_CMD_VIEWPORTZ1,
|
||||
GE_CMD_VIEWPORTX2,
|
||||
GE_CMD_VIEWPORTY2,
|
||||
GE_CMD_VIEWPORTZ2,
|
||||
GE_CMD_VIEWPORTXSCALE,
|
||||
GE_CMD_VIEWPORTYSCALE,
|
||||
GE_CMD_VIEWPORTZSCALE,
|
||||
GE_CMD_VIEWPORTXCENTER,
|
||||
GE_CMD_VIEWPORTYCENTER,
|
||||
GE_CMD_VIEWPORTZCENTER,
|
||||
GE_CMD_TEXSCALEU = 0x48,
|
||||
GE_CMD_TEXSCALEV = 0x49,
|
||||
GE_CMD_TEXOFFSETU = 0x4A,
|
||||
|
|
|
@ -208,8 +208,8 @@ static const TabStateRow stateSettingsRows[] = {
|
|||
{ L"Scissor", GE_CMD_SCISSOR1, CMD_FMT_XYXY, 0, GE_CMD_SCISSOR2 },
|
||||
{ L"Min Z", GE_CMD_MINZ, CMD_FMT_HEX },
|
||||
{ L"Max Z", GE_CMD_MAXZ, CMD_FMT_HEX },
|
||||
{ L"Viewport 1", GE_CMD_VIEWPORTX1, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTY1, GE_CMD_VIEWPORTZ1 },
|
||||
{ L"Viewport 2", GE_CMD_VIEWPORTX2, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTY2, GE_CMD_VIEWPORTZ2 },
|
||||
{ L"Viewport Scale", GE_CMD_VIEWPORTXSCALE, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTYSCALE, GE_CMD_VIEWPORTZSCALE },
|
||||
{ L"Viewport Offset", GE_CMD_VIEWPORTXCENTER, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTYCENTER, GE_CMD_VIEWPORTZCENTER },
|
||||
{ L"Offset", GE_CMD_OFFSETX, CMD_FMT_F16_XY, 0, GE_CMD_OFFSETY },
|
||||
// TODO: Format.
|
||||
{ L"Cull mode", GE_CMD_CULL, CMD_FMT_NUM, GE_CMD_CULLFACEENABLE },
|
||||
|
|
Loading…
Add table
Reference in a new issue