This commit is contained in:
parent
a7e636e8b0
commit
ae5b752001
|
@ -1,93 +0,0 @@
|
||||||
/* Copyright 2009 DeSmuME team
|
|
||||||
|
|
||||||
This file is part of DeSmuME
|
|
||||||
|
|
||||||
DeSmuME 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.
|
|
||||||
|
|
||||||
DeSmuME 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 DeSmuME; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _RASTERIZE_H_
|
|
||||||
#define _RASTERIZE_H_
|
|
||||||
|
|
||||||
#include "render3D.h"
|
|
||||||
#include "gfx3d.h"
|
|
||||||
|
|
||||||
extern GPU3DInterface gpu3DRasterize;
|
|
||||||
|
|
||||||
union FragmentColor
|
|
||||||
{
|
|
||||||
u32 color;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
u8 r,g,b,a;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Fragment
|
|
||||||
{
|
|
||||||
u32 depth;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
u8 opaque, translucent;
|
|
||||||
} polyid;
|
|
||||||
|
|
||||||
u8 stencil;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
u8 isTranslucentPoly:1;
|
|
||||||
u8 fogged:1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class TexCacheItem;
|
|
||||||
|
|
||||||
class SoftRasterizerEngine
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
//debug:
|
|
||||||
int _debug_drawClippedUserPoly;
|
|
||||||
|
|
||||||
SoftRasterizerEngine();
|
|
||||||
|
|
||||||
void initFramebuffer(const int width, const int height, const bool clearImage);
|
|
||||||
void framebufferProcess();
|
|
||||||
void updateToonTable();
|
|
||||||
void updateFogTable();
|
|
||||||
void updateFloatColors();
|
|
||||||
void performClipping(bool hirez);
|
|
||||||
template<bool CUSTOM> void performViewportTransforms(int width, int height);
|
|
||||||
void performCoordAdjustment(const bool skipBackfacing);
|
|
||||||
void performBackfaceTests();
|
|
||||||
void setupTextures(const bool skipBackfacing);
|
|
||||||
|
|
||||||
FragmentColor toonTable[32];
|
|
||||||
u8 fogTable[32768];
|
|
||||||
GFX3D_Clipper clipper;
|
|
||||||
GFX3D_Clipper::TClippedPoly *clippedPolys;
|
|
||||||
int clippedPolyCounter;
|
|
||||||
TexCacheItem* polyTexKeys[POLYLIST_SIZE];
|
|
||||||
bool polyVisible[POLYLIST_SIZE];
|
|
||||||
bool polyBackfacing[POLYLIST_SIZE];
|
|
||||||
Fragment *screen;
|
|
||||||
FragmentColor *screenColor;
|
|
||||||
POLYLIST* polylist;
|
|
||||||
VERTLIST* vertlist;
|
|
||||||
INDEXLIST* indexlist;
|
|
||||||
int width, height;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue