Skip to content

Commit

Permalink
Slight change to clean the code up more, we no longer need to create …
Browse files Browse the repository at this point in the history
…a typedef for the filter maps, since where no longer handling multiple renders
  • Loading branch information
death-droid committed Nov 1, 2012
1 parent bd7cad2 commit 2dd0eed
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 56 deletions.
3 changes: 2 additions & 1 deletion Parser/RSP_Parser.h
Expand Up @@ -170,7 +170,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TLUT_FMT_RGBA16 (2 << RSP_SETOTHERMODE_SHIFT_TEXTLUT)
#define TLUT_FMT_IA16 (3 << RSP_SETOTHERMODE_SHIFT_TEXTLUT)

// RSP_SETOTHERMODE_H gSetTextureFilter
// RSP_SETOTHERMODE_H gSet

#define RDP_TFILTER_POINT (0 << RSP_SETOTHERMODE_SHIFT_TEXTFILT)
#define RDP_TFILTER_AVERAGE (3 << RSP_SETOTHERMODE_SHIFT_TEXTFILT)
#define RDP_TFILTER_BILERP (2 << RSP_SETOTHERMODE_SHIFT_TEXTFILT)
Expand Down
17 changes: 4 additions & 13 deletions Render/DirectX/D3DRender.cpp
Expand Up @@ -403,29 +403,20 @@ void D3DRender::SetZUpdate(BOOL bZUpdate)
gD3DDevWrapper.SetRenderState(D3DRS_ZWRITEENABLE, bZUpdate );
}

TextureFilterMap DXTexFilterMap[2]=
{
{FILTER_POINT, D3DTEXF_POINT},
{FILTER_LINEAR, D3DTEXF_LINEAR},
//{FILTER_LINEAR, D3DTEXF_ANISOTROPIC},
//{FILTER_LINEAR, D3DTEXF_FLATCUBIC},
//{FILTER_LINEAR, D3DTEXF_GAUSSIANCUBIC},
};

void D3DRender::ApplyTextureFilter()
{

if( gRDP.otherMode.cycle_type >= CYCLE_TYPE_COPY )
{
D3DSetMinFilter( 0, DXTexFilterMap[m_dwMinFilter].realFilter );
D3DSetMagFilter( 0, DXTexFilterMap[m_dwMagFilter].realFilter );
D3DSetMinFilter( 0, m_dwMinFilter );
D3DSetMagFilter( 0, m_dwMagFilter );
}
else
{
for( int i=0; i<m_curCombineInfo.nStages; i++ )
{
D3DSetMinFilter( i, DXTexFilterMap[m_dwMinFilter].realFilter );
D3DSetMagFilter( i, DXTexFilterMap[m_dwMagFilter].realFilter );
D3DSetMinFilter( i, m_dwMinFilter );
D3DSetMagFilter( i, m_dwMagFilter );
}
}
}
Expand Down
47 changes: 22 additions & 25 deletions Render/Render.cpp
Expand Up @@ -58,8 +58,8 @@ CRender::CRender() :

m_bBlendModeValid(FALSE),

m_dwMinFilter(FILTER_POINT),
m_dwMagFilter(FILTER_POINT)
m_dwMinFilter(D3DTEXF_POINT),
m_dwMagFilter(D3DTEXF_POINT)
{
int i;
InitRenderBase();
Expand Down Expand Up @@ -765,8 +765,8 @@ bool CRender::TexRect(LONG nX0, LONG nY0, LONG nX1, LONG nY1, float fS0, float f
TurnFogOnOff(false);
if( TileUFlags[gRSP.curTile]==TEXTURE_UV_FLAG_CLAMP && TileVFlags[gRSP.curTile]==TEXTURE_UV_FLAG_CLAMP && options.forceTextureFilter == FORCE_DEFAULT_FILTER )
{
TextureFilter dwFilter = m_dwMagFilter;
m_dwMagFilter = m_dwMinFilter = FILTER_LINEAR;
int dwFilter = m_dwMagFilter;
m_dwMagFilter = m_dwMinFilter = D3DTEXF_LINEAR;
ApplyTextureFilter();
ApplyRDPScissor();
res = RenderTexRect();
Expand All @@ -775,8 +775,8 @@ bool CRender::TexRect(LONG nX0, LONG nY0, LONG nX1, LONG nY1, float fS0, float f
}
else if( fScaleS >= 1 && fScaleT >= 1 && options.forceTextureFilter == FORCE_DEFAULT_FILTER )
{
TextureFilter dwFilter = m_dwMagFilter;
m_dwMagFilter = m_dwMinFilter = FILTER_POINT;
int dwFilter = m_dwMagFilter;
m_dwMagFilter = m_dwMinFilter = D3DTEXF_POINT;
ApplyTextureFilter();
ApplyRDPScissor();
res = RenderTexRect();
Expand All @@ -788,6 +788,7 @@ bool CRender::TexRect(LONG nX0, LONG nY0, LONG nX1, LONG nY1, float fS0, float f
ApplyRDPScissor();
res = RenderTexRect();
}

TurnFogOnOff(gRSP.bFogEnabled);

if( gRDP.otherMode.cycle_type >= CYCLE_TYPE_COPY || !gRDP.otherMode.z_cmp )
Expand Down Expand Up @@ -1962,31 +1963,27 @@ void CRender::InitOtherModes(void) // Set other modes not covered by color c

void CRender::SetTextureFilter(uint32 dwFilter)
{
if( options.forceTextureFilter == FORCE_DEFAULT_FILTER )
switch( options.forceTextureFilter )
{
switch(dwFilter)
{
case RDP_TFILTER_AVERAGE: //?
case RDP_TFILTER_BILERP:
m_dwMinFilter = m_dwMagFilter = FILTER_LINEAR;
break;
default:
m_dwMinFilter = m_dwMagFilter = FILTER_POINT;
break;
}
}
else
{
switch( options.forceTextureFilter )
{
case FORCE_DEFAULT_FILTER:
switch(dwFilter)
{
case RDP_TFILTER_AVERAGE: //?
case RDP_TFILTER_BILERP:
m_dwMinFilter = m_dwMagFilter = D3DTEXF_LINEAR;
break;
default:
m_dwMinFilter = m_dwMagFilter = D3DTEXF_POINT;
break;
}
break;
case FORCE_POINT_FILTER:
m_dwMinFilter = m_dwMagFilter = FILTER_POINT;
m_dwMinFilter = m_dwMagFilter = D3DTEXF_POINT;
break;
case FORCE_LINEAR_FILTER:
case FORCE_BILINEAR_FILTER:
m_dwMinFilter = m_dwMagFilter = FILTER_LINEAR;
m_dwMinFilter = m_dwMagFilter = D3DTEXF_LINEAR;
break;
}
}

ApplyTextureFilter();
Expand Down
4 changes: 2 additions & 2 deletions Render/Render.h
Expand Up @@ -51,8 +51,8 @@ class CRender : public CExtendedRender
BOOL m_bZCompare;
uint32 m_dwZBias;

TextureFilter m_dwMinFilter;
TextureFilter m_dwMagFilter;
int m_dwMinFilter;
int m_dwMagFilter;

uint32 m_dwAlpha;

Expand Down
3 changes: 0 additions & 3 deletions Texture/TextureFilters/TextureFilters_hq2x.cpp
Expand Up @@ -20,9 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stdafx.h"
#include "interp.h"

/************************************************************************/
/* hq2x filters */
/************************************************************************/

/*
* This effect is derived from the hq2x effect made by Maxim Stepin
Expand Down
12 changes: 0 additions & 12 deletions typedefs.h
Expand Up @@ -443,18 +443,6 @@ typedef struct
uint32 realFlag;
} UVFlagMap;


typedef enum {
FILTER_POINT,
FILTER_LINEAR,
} TextureFilter;

typedef struct
{
TextureFilter N64filter;
uint32 realFilter;
} TextureFilterMap;

typedef struct {
char *description;
int number;
Expand Down

0 comments on commit 2dd0eed

Please sign in to comment.