mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Merge pull request #82 from lioncash/vertical-alignment
Fix some vertical alignments
This commit is contained in:
@ -337,9 +337,9 @@ void STACKALIGN GatherPipeBursted()
|
||||
"FIFO is overflowed by GatherPipe !\nCPU thread is too fast!");
|
||||
|
||||
// check if we are in sync
|
||||
_assert_msg_(COMMANDPROCESSOR, fifo.CPWritePointer == ProcessorInterface::Fifo_CPUWritePointer, "FIFOs linked but out of sync");
|
||||
_assert_msg_(COMMANDPROCESSOR, fifo.CPBase == ProcessorInterface::Fifo_CPUBase, "FIFOs linked but out of sync");
|
||||
_assert_msg_(COMMANDPROCESSOR, fifo.CPEnd == ProcessorInterface::Fifo_CPUEnd, "FIFOs linked but out of sync");
|
||||
_assert_msg_(COMMANDPROCESSOR, fifo.CPWritePointer == ProcessorInterface::Fifo_CPUWritePointer, "FIFOs linked but out of sync");
|
||||
_assert_msg_(COMMANDPROCESSOR, fifo.CPBase == ProcessorInterface::Fifo_CPUBase, "FIFOs linked but out of sync");
|
||||
_assert_msg_(COMMANDPROCESSOR, fifo.CPEnd == ProcessorInterface::Fifo_CPUEnd, "FIFOs linked but out of sync");
|
||||
}
|
||||
|
||||
void UpdateInterrupts(u64 userdata)
|
||||
@ -486,11 +486,11 @@ void SetCpStatusRegister()
|
||||
|
||||
INFO_LOG(COMMANDPROCESSOR,"\t Read from STATUS_REGISTER : %04x", m_CPStatusReg.Hex);
|
||||
DEBUG_LOG(COMMANDPROCESSOR, "(r) status: iBP %s | fReadIdle %s | fCmdIdle %s | iOvF %s | iUndF %s"
|
||||
, m_CPStatusReg.Breakpoint ? "ON" : "OFF"
|
||||
, m_CPStatusReg.ReadIdle ? "ON" : "OFF"
|
||||
, m_CPStatusReg.CommandIdle ? "ON" : "OFF"
|
||||
, m_CPStatusReg.OverflowHiWatermark ? "ON" : "OFF"
|
||||
, m_CPStatusReg.UnderflowLoWatermark ? "ON" : "OFF"
|
||||
, m_CPStatusReg.Breakpoint ? "ON" : "OFF"
|
||||
, m_CPStatusReg.ReadIdle ? "ON" : "OFF"
|
||||
, m_CPStatusReg.CommandIdle ? "ON" : "OFF"
|
||||
, m_CPStatusReg.OverflowHiWatermark ? "ON" : "OFF"
|
||||
, m_CPStatusReg.UnderflowLoWatermark ? "ON" : "OFF"
|
||||
);
|
||||
}
|
||||
|
||||
@ -527,12 +527,12 @@ void SetCpControlRegister()
|
||||
}
|
||||
|
||||
DEBUG_LOG(COMMANDPROCESSOR, "\t GPREAD %s | BP %s | Int %s | OvF %s | UndF %s | LINK %s"
|
||||
, fifo.bFF_GPReadEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_BPEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_BPInt ? "ON" : "OFF"
|
||||
, m_CPCtrlReg.FifoOverflowIntEnable ? "ON" : "OFF"
|
||||
, m_CPCtrlReg.FifoUnderflowIntEnable ? "ON" : "OFF"
|
||||
, m_CPCtrlReg.GPLinkEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_GPReadEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_BPEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_BPInt ? "ON" : "OFF"
|
||||
, m_CPCtrlReg.FifoOverflowIntEnable ? "ON" : "OFF"
|
||||
, m_CPCtrlReg.FifoUnderflowIntEnable ? "ON" : "OFF"
|
||||
, m_CPCtrlReg.GPLinkEnable ? "ON" : "OFF"
|
||||
);
|
||||
|
||||
}
|
||||
|
@ -74,21 +74,21 @@ namespace DriverDetails
|
||||
case VENDOR_NVIDIA:
|
||||
case VENDOR_TEGRA:
|
||||
m_driver = DRIVER_NVIDIA;
|
||||
break;
|
||||
break;
|
||||
case VENDOR_ATI:
|
||||
m_driver = DRIVER_ATI;
|
||||
break;
|
||||
break;
|
||||
case VENDOR_INTEL:
|
||||
m_driver = DRIVER_INTEL;
|
||||
break;
|
||||
break;
|
||||
case VENDOR_IMGTEC:
|
||||
m_driver = DRIVER_IMGTEC;
|
||||
break;
|
||||
break;
|
||||
case VENDOR_VIVANTE:
|
||||
m_driver = DRIVER_VIVANTE;
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
for(auto& bug : m_known_bugs)
|
||||
|
@ -48,8 +48,8 @@ union UPEAlphaReadReg
|
||||
u16 Hex;
|
||||
struct
|
||||
{
|
||||
u16 ReadMode : 2;
|
||||
u16 : 14;
|
||||
u16 ReadMode : 2;
|
||||
u16 : 14;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1046,14 +1046,14 @@ void SampleTexture(T& out, const char *texcoords, const char *texswap, int texma
|
||||
|
||||
static const char *tevAlphaFuncsTable[] =
|
||||
{
|
||||
"(false)", // NEVER
|
||||
"(prev.a <= %s - (0.25/255.0))", // LESS
|
||||
"(abs( prev.a - %s ) < (0.5/255.0))", // EQUAL
|
||||
"(prev.a < %s + (0.25/255.0))", // LEQUAL
|
||||
"(prev.a >= %s + (0.25/255.0))", // GREATER
|
||||
"(abs( prev.a - %s ) >= (0.5/255.0))", // NEQUAL
|
||||
"(prev.a > %s - (0.25/255.0))", // GEQUAL
|
||||
"(true)" // ALWAYS
|
||||
"(false)", // NEVER
|
||||
"(prev.a <= %s - (0.25/255.0))", // LESS
|
||||
"(abs( prev.a - %s ) < (0.5/255.0))", // EQUAL
|
||||
"(prev.a < %s + (0.25/255.0))", // LEQUAL
|
||||
"(prev.a >= %s + (0.25/255.0))", // GREATER
|
||||
"(abs( prev.a - %s ) >= (0.5/255.0))", // NEQUAL
|
||||
"(prev.a > %s - (0.25/255.0))", // GEQUAL
|
||||
"(true)" // ALWAYS
|
||||
};
|
||||
|
||||
static const char *tevAlphaFunclogicTable[] =
|
||||
@ -1124,14 +1124,14 @@ static inline void WriteAlphaTest(T& out, pixel_shader_uid_data& uid_data, API_T
|
||||
|
||||
static const char *tevFogFuncsTable[] =
|
||||
{
|
||||
"", // No Fog
|
||||
"", // ?
|
||||
"", // Linear
|
||||
"", // ?
|
||||
"\tfog = 1.0 - exp2(-8.0 * fog);\n", // exp
|
||||
"\tfog = 1.0 - exp2(-8.0 * fog * fog);\n", // exp2
|
||||
"\tfog = exp2(-8.0 * (1.0 - fog));\n", // backward exp
|
||||
"\tfog = 1.0 - fog;\n fog = exp2(-8.0 * fog * fog);\n" // backward exp2
|
||||
"", // No Fog
|
||||
"", // ?
|
||||
"", // Linear
|
||||
"", // ?
|
||||
"\tfog = 1.0 - exp2(-8.0 * fog);\n", // exp
|
||||
"\tfog = 1.0 - exp2(-8.0 * fog * fog);\n", // exp2
|
||||
"\tfog = exp2(-8.0 * (1.0 - fog));\n", // backward exp
|
||||
"\tfog = 1.0 - fog;\n fog = exp2(-8.0 * fog * fog);\n" // backward exp2
|
||||
};
|
||||
|
||||
template<class T>
|
||||
@ -1153,7 +1153,7 @@ static inline void WriteFog(T& out, pixel_shader_uid_data& uid_data)
|
||||
else
|
||||
{
|
||||
// orthographic
|
||||
// ze = a*Zs (here, no B_SHF)
|
||||
// ze = a*Zs (here, no B_SHF)
|
||||
out.Write("\tfloat ze = " I_FOG"[1].x * zCoord;\n");
|
||||
}
|
||||
|
||||
|
@ -2447,25 +2447,25 @@ PC_TexFormat TexDecoder_DecodeRGBA8FromTmem(u8* dst, const u8 *src_ar, const u8
|
||||
|
||||
const char* texfmt[] = {
|
||||
// pixel
|
||||
"I4", "I8", "IA4", "IA8",
|
||||
"RGB565", "RGB5A3", "RGBA8", "0x07",
|
||||
"C4", "C8", "C14X2", "0x0B",
|
||||
"0x0C", "0x0D", "CMPR", "0x0F",
|
||||
"I4", "I8", "IA4", "IA8",
|
||||
"RGB565", "RGB5A3", "RGBA8", "0x07",
|
||||
"C4", "C8", "C14X2", "0x0B",
|
||||
"0x0C", "0x0D", "CMPR", "0x0F",
|
||||
// Z-buffer
|
||||
"0x10", "Z8", "0x12", "Z16",
|
||||
"0x14", "0x15", "Z24X8", "0x17",
|
||||
"0x18", "0x19", "0x1A", "0x1B",
|
||||
"0x1C", "0x1D", "0x1E", "0x1F",
|
||||
"0x10", "Z8", "0x12", "Z16",
|
||||
"0x14", "0x15", "Z24X8", "0x17",
|
||||
"0x18", "0x19", "0x1A", "0x1B",
|
||||
"0x1C", "0x1D", "0x1E", "0x1F",
|
||||
// pixel + copy
|
||||
"CR4", "0x21", "CRA4", "CRA8",
|
||||
"0x24", "0x25", "CYUVA8", "CA8",
|
||||
"CR8", "CG8", "CB8", "CRG8",
|
||||
"CGB8", "0x2D", "0x2E", "0x2F",
|
||||
"CR4", "0x21", "CRA4", "CRA8",
|
||||
"0x24", "0x25", "CYUVA8", "CA8",
|
||||
"CR8", "CG8", "CB8", "CRG8",
|
||||
"CGB8", "0x2D", "0x2E", "0x2F",
|
||||
// Z + copy
|
||||
"CZ4", "0x31", "0x32", "0x33",
|
||||
"0x34", "0x35", "0x36", "0x37",
|
||||
"0x38", "CZ8M", "CZ8L", "0x3B",
|
||||
"CZ16L", "0x3D", "0x3E", "0x3F",
|
||||
"CZ4", "0x31", "0x32", "0x33",
|
||||
"0x34", "0x35", "0x36", "0x37",
|
||||
"0x38", "CZ8M", "CZ8L", "0x3B",
|
||||
"CZ16L", "0x3D", "0x3E", "0x3F",
|
||||
};
|
||||
|
||||
const unsigned char sfont_map[] = {
|
||||
|
@ -844,15 +844,15 @@ void VertexLoader::SetupRunVertices(int vtx_attr_group, int primitive, int const
|
||||
g_nativeVertexFmt = m_NativeFmt;
|
||||
|
||||
// Load position and texcoord scale factors.
|
||||
m_VtxAttr.PosFrac = g_VtxAttr[vtx_attr_group].g0.PosFrac;
|
||||
m_VtxAttr.texCoord[0].Frac = g_VtxAttr[vtx_attr_group].g0.Tex0Frac;
|
||||
m_VtxAttr.texCoord[1].Frac = g_VtxAttr[vtx_attr_group].g1.Tex1Frac;
|
||||
m_VtxAttr.texCoord[2].Frac = g_VtxAttr[vtx_attr_group].g1.Tex2Frac;
|
||||
m_VtxAttr.texCoord[3].Frac = g_VtxAttr[vtx_attr_group].g1.Tex3Frac;
|
||||
m_VtxAttr.texCoord[4].Frac = g_VtxAttr[vtx_attr_group].g2.Tex4Frac;
|
||||
m_VtxAttr.texCoord[5].Frac = g_VtxAttr[vtx_attr_group].g2.Tex5Frac;
|
||||
m_VtxAttr.texCoord[6].Frac = g_VtxAttr[vtx_attr_group].g2.Tex6Frac;
|
||||
m_VtxAttr.texCoord[7].Frac = g_VtxAttr[vtx_attr_group].g2.Tex7Frac;
|
||||
m_VtxAttr.PosFrac = g_VtxAttr[vtx_attr_group].g0.PosFrac;
|
||||
m_VtxAttr.texCoord[0].Frac = g_VtxAttr[vtx_attr_group].g0.Tex0Frac;
|
||||
m_VtxAttr.texCoord[1].Frac = g_VtxAttr[vtx_attr_group].g1.Tex1Frac;
|
||||
m_VtxAttr.texCoord[2].Frac = g_VtxAttr[vtx_attr_group].g1.Tex2Frac;
|
||||
m_VtxAttr.texCoord[3].Frac = g_VtxAttr[vtx_attr_group].g1.Tex3Frac;
|
||||
m_VtxAttr.texCoord[4].Frac = g_VtxAttr[vtx_attr_group].g2.Tex4Frac;
|
||||
m_VtxAttr.texCoord[5].Frac = g_VtxAttr[vtx_attr_group].g2.Tex5Frac;
|
||||
m_VtxAttr.texCoord[6].Frac = g_VtxAttr[vtx_attr_group].g2.Tex6Frac;
|
||||
m_VtxAttr.texCoord[7].Frac = g_VtxAttr[vtx_attr_group].g2.Tex7Frac;
|
||||
|
||||
pVtxAttr = &m_VtxAttr;
|
||||
posScale = fractionTable[m_VtxAttr.PosFrac];
|
||||
@ -913,43 +913,43 @@ void VertexLoader::SetVAT(u32 _group0, u32 _group1, u32 _group2)
|
||||
vat.g1.Hex = _group1;
|
||||
vat.g2.Hex = _group2;
|
||||
|
||||
m_VtxAttr.PosElements = vat.g0.PosElements;
|
||||
m_VtxAttr.PosFormat = vat.g0.PosFormat;
|
||||
m_VtxAttr.PosFrac = vat.g0.PosFrac;
|
||||
m_VtxAttr.NormalElements = vat.g0.NormalElements;
|
||||
m_VtxAttr.NormalFormat = vat.g0.NormalFormat;
|
||||
m_VtxAttr.color[0].Elements = vat.g0.Color0Elements;
|
||||
m_VtxAttr.color[0].Comp = vat.g0.Color0Comp;
|
||||
m_VtxAttr.color[1].Elements = vat.g0.Color1Elements;
|
||||
m_VtxAttr.color[1].Comp = vat.g0.Color1Comp;
|
||||
m_VtxAttr.texCoord[0].Elements = vat.g0.Tex0CoordElements;
|
||||
m_VtxAttr.texCoord[0].Format = vat.g0.Tex0CoordFormat;
|
||||
m_VtxAttr.texCoord[0].Frac = vat.g0.Tex0Frac;
|
||||
m_VtxAttr.ByteDequant = vat.g0.ByteDequant;
|
||||
m_VtxAttr.NormalIndex3 = vat.g0.NormalIndex3;
|
||||
m_VtxAttr.PosElements = vat.g0.PosElements;
|
||||
m_VtxAttr.PosFormat = vat.g0.PosFormat;
|
||||
m_VtxAttr.PosFrac = vat.g0.PosFrac;
|
||||
m_VtxAttr.NormalElements = vat.g0.NormalElements;
|
||||
m_VtxAttr.NormalFormat = vat.g0.NormalFormat;
|
||||
m_VtxAttr.color[0].Elements = vat.g0.Color0Elements;
|
||||
m_VtxAttr.color[0].Comp = vat.g0.Color0Comp;
|
||||
m_VtxAttr.color[1].Elements = vat.g0.Color1Elements;
|
||||
m_VtxAttr.color[1].Comp = vat.g0.Color1Comp;
|
||||
m_VtxAttr.texCoord[0].Elements = vat.g0.Tex0CoordElements;
|
||||
m_VtxAttr.texCoord[0].Format = vat.g0.Tex0CoordFormat;
|
||||
m_VtxAttr.texCoord[0].Frac = vat.g0.Tex0Frac;
|
||||
m_VtxAttr.ByteDequant = vat.g0.ByteDequant;
|
||||
m_VtxAttr.NormalIndex3 = vat.g0.NormalIndex3;
|
||||
|
||||
m_VtxAttr.texCoord[1].Elements = vat.g1.Tex1CoordElements;
|
||||
m_VtxAttr.texCoord[1].Format = vat.g1.Tex1CoordFormat;
|
||||
m_VtxAttr.texCoord[1].Frac = vat.g1.Tex1Frac;
|
||||
m_VtxAttr.texCoord[2].Elements = vat.g1.Tex2CoordElements;
|
||||
m_VtxAttr.texCoord[2].Format = vat.g1.Tex2CoordFormat;
|
||||
m_VtxAttr.texCoord[2].Frac = vat.g1.Tex2Frac;
|
||||
m_VtxAttr.texCoord[3].Elements = vat.g1.Tex3CoordElements;
|
||||
m_VtxAttr.texCoord[3].Format = vat.g1.Tex3CoordFormat;
|
||||
m_VtxAttr.texCoord[3].Frac = vat.g1.Tex3Frac;
|
||||
m_VtxAttr.texCoord[4].Elements = vat.g1.Tex4CoordElements;
|
||||
m_VtxAttr.texCoord[4].Format = vat.g1.Tex4CoordFormat;
|
||||
m_VtxAttr.texCoord[1].Elements = vat.g1.Tex1CoordElements;
|
||||
m_VtxAttr.texCoord[1].Format = vat.g1.Tex1CoordFormat;
|
||||
m_VtxAttr.texCoord[1].Frac = vat.g1.Tex1Frac;
|
||||
m_VtxAttr.texCoord[2].Elements = vat.g1.Tex2CoordElements;
|
||||
m_VtxAttr.texCoord[2].Format = vat.g1.Tex2CoordFormat;
|
||||
m_VtxAttr.texCoord[2].Frac = vat.g1.Tex2Frac;
|
||||
m_VtxAttr.texCoord[3].Elements = vat.g1.Tex3CoordElements;
|
||||
m_VtxAttr.texCoord[3].Format = vat.g1.Tex3CoordFormat;
|
||||
m_VtxAttr.texCoord[3].Frac = vat.g1.Tex3Frac;
|
||||
m_VtxAttr.texCoord[4].Elements = vat.g1.Tex4CoordElements;
|
||||
m_VtxAttr.texCoord[4].Format = vat.g1.Tex4CoordFormat;
|
||||
|
||||
m_VtxAttr.texCoord[4].Frac = vat.g2.Tex4Frac;
|
||||
m_VtxAttr.texCoord[5].Elements = vat.g2.Tex5CoordElements;
|
||||
m_VtxAttr.texCoord[5].Format = vat.g2.Tex5CoordFormat;
|
||||
m_VtxAttr.texCoord[5].Frac = vat.g2.Tex5Frac;
|
||||
m_VtxAttr.texCoord[6].Elements = vat.g2.Tex6CoordElements;
|
||||
m_VtxAttr.texCoord[6].Format = vat.g2.Tex6CoordFormat;
|
||||
m_VtxAttr.texCoord[6].Frac = vat.g2.Tex6Frac;
|
||||
m_VtxAttr.texCoord[7].Elements = vat.g2.Tex7CoordElements;
|
||||
m_VtxAttr.texCoord[7].Format = vat.g2.Tex7CoordFormat;
|
||||
m_VtxAttr.texCoord[7].Frac = vat.g2.Tex7Frac;
|
||||
m_VtxAttr.texCoord[4].Frac = vat.g2.Tex4Frac;
|
||||
m_VtxAttr.texCoord[5].Elements = vat.g2.Tex5CoordElements;
|
||||
m_VtxAttr.texCoord[5].Format = vat.g2.Tex5CoordFormat;
|
||||
m_VtxAttr.texCoord[5].Frac = vat.g2.Tex5Frac;
|
||||
m_VtxAttr.texCoord[6].Elements = vat.g2.Tex6CoordElements;
|
||||
m_VtxAttr.texCoord[6].Format = vat.g2.Tex6CoordFormat;
|
||||
m_VtxAttr.texCoord[6].Frac = vat.g2.Tex6Frac;
|
||||
m_VtxAttr.texCoord[7].Elements = vat.g2.Tex7CoordElements;
|
||||
m_VtxAttr.texCoord[7].Format = vat.g2.Tex7CoordFormat;
|
||||
m_VtxAttr.texCoord[7].Frac = vat.g2.Tex7Frac;
|
||||
|
||||
if(!m_VtxAttr.ByteDequant) {
|
||||
ERROR_LOG(VIDEO, "ByteDequant is set to zero");
|
||||
|
@ -29,11 +29,11 @@ __forceinline void _SetCol(u32 val)
|
||||
//BARG -> AABBGGRR
|
||||
__forceinline void _SetCol4444(u16 val)
|
||||
{
|
||||
u32 col = (val & 0xF0); // col = 000000R0;
|
||||
col |= (val & 0xF ) << 12; // col |= 0000G000;
|
||||
col |= (((u32)val) & 0xF000) << 8; // col |= 00B00000;
|
||||
col |= (((u32)val) & 0x0F00) << 20; // col |= A0000000;
|
||||
col |= col >> 4; // col = A0B0G0R0 | 0A0B0G0R;
|
||||
u32 col = (val & 0xF0); // col = 000000R0;
|
||||
col |= (val & 0xF ) << 12; // col |= 0000G000;
|
||||
col |= (((u32)val) & 0xF000) << 8; // col |= 00B00000;
|
||||
col |= (((u32)val) & 0x0F00) << 20; // col |= A0000000;
|
||||
col |= col >> 4; // col = A0B0G0R0 | 0A0B0G0R;
|
||||
_SetCol(col);
|
||||
}
|
||||
|
||||
|
@ -25,34 +25,34 @@ public:
|
||||
private:
|
||||
enum ENormalType
|
||||
{
|
||||
NRM_NOT_PRESENT = 0,
|
||||
NRM_DIRECT = 1,
|
||||
NRM_INDEX8 = 2,
|
||||
NRM_INDEX16 = 3,
|
||||
NRM_NOT_PRESENT = 0,
|
||||
NRM_DIRECT = 1,
|
||||
NRM_INDEX8 = 2,
|
||||
NRM_INDEX16 = 3,
|
||||
NUM_NRM_TYPE
|
||||
};
|
||||
|
||||
enum ENormalFormat
|
||||
{
|
||||
FORMAT_UBYTE = 0,
|
||||
FORMAT_BYTE = 1,
|
||||
FORMAT_USHORT = 2,
|
||||
FORMAT_SHORT = 3,
|
||||
FORMAT_FLOAT = 4,
|
||||
FORMAT_UBYTE = 0,
|
||||
FORMAT_BYTE = 1,
|
||||
FORMAT_USHORT = 2,
|
||||
FORMAT_SHORT = 3,
|
||||
FORMAT_FLOAT = 4,
|
||||
NUM_NRM_FORMAT
|
||||
};
|
||||
|
||||
enum ENormalElements
|
||||
{
|
||||
NRM_NBT = 0,
|
||||
NRM_NBT3 = 1,
|
||||
NRM_NBT = 0,
|
||||
NRM_NBT3 = 1,
|
||||
NUM_NRM_ELEMENTS
|
||||
};
|
||||
|
||||
enum ENormalIndices
|
||||
{
|
||||
NRM_INDICES1 = 0,
|
||||
NRM_INDICES3 = 1,
|
||||
NRM_INDICES1 = 0,
|
||||
NRM_INDICES3 = 1,
|
||||
NUM_NRM_INDICES
|
||||
};
|
||||
|
||||
|
@ -147,22 +147,22 @@ static void ViewportCorrectionMatrix(Matrix44& result)
|
||||
float intendedWd = 2.0f * xfregs.viewport.wd;
|
||||
float intendedHt = -2.0f * xfregs.viewport.ht;
|
||||
|
||||
if (intendedWd < 0.f)
|
||||
{
|
||||
intendedX += intendedWd;
|
||||
intendedWd = -intendedWd;
|
||||
}
|
||||
if (intendedHt < 0.f)
|
||||
{
|
||||
intendedY += intendedHt;
|
||||
intendedHt = -intendedHt;
|
||||
}
|
||||
if (intendedWd < 0.f)
|
||||
{
|
||||
intendedX += intendedWd;
|
||||
intendedWd = -intendedWd;
|
||||
}
|
||||
if (intendedHt < 0.f)
|
||||
{
|
||||
intendedY += intendedHt;
|
||||
intendedHt = -intendedHt;
|
||||
}
|
||||
|
||||
// fit to EFB size
|
||||
float X = (intendedX >= 0.f) ? intendedX : 0.f;
|
||||
float Y = (intendedY >= 0.f) ? intendedY : 0.f;
|
||||
float Wd = (X + intendedWd <= EFB_WIDTH) ? intendedWd : (EFB_WIDTH - X);
|
||||
float Ht = (Y + intendedHt <= EFB_HEIGHT) ? intendedHt : (EFB_HEIGHT - Y);
|
||||
float X = (intendedX >= 0.f) ? intendedX : 0.f;
|
||||
float Y = (intendedY >= 0.f) ? intendedY : 0.f;
|
||||
float Wd = (X + intendedWd <= EFB_WIDTH) ? intendedWd : (EFB_WIDTH - X);
|
||||
float Ht = (Y + intendedHt <= EFB_HEIGHT) ? intendedHt : (EFB_HEIGHT - Y);
|
||||
|
||||
Matrix44::LoadIdentity(result);
|
||||
if (Wd == 0 || Ht == 0)
|
||||
|
@ -18,10 +18,10 @@
|
||||
#include <string>
|
||||
|
||||
// Log in two categories, and save three other options in the same byte
|
||||
#define CONF_LOG 1
|
||||
#define CONF_PRIMLOG 2
|
||||
#define CONF_SAVETARGETS 8
|
||||
#define CONF_SAVESHADERS 16
|
||||
#define CONF_LOG 1
|
||||
#define CONF_PRIMLOG 2
|
||||
#define CONF_SAVETARGETS 8
|
||||
#define CONF_SAVESHADERS 16
|
||||
|
||||
enum AspectMode
|
||||
{
|
||||
|
Reference in New Issue
Block a user