mirror of https://github.com/aap/librw.git
mipmap allocation for ps2 rasters
This commit is contained in:
parent
7280647085
commit
75435b8934
|
@ -146,3 +146,12 @@ project "ps2test"
|
||||||
links { "librw" }
|
links { "librw" }
|
||||||
-- "c -lc" is a hack because we need -lc twice for some reason
|
-- "c -lc" is a hack because we need -lc twice for some reason
|
||||||
links { "c -lc", "kernel", "mf" }
|
links { "c -lc", "kernel", "mf" }
|
||||||
|
|
||||||
|
project "ps2rastertest"
|
||||||
|
kind "ConsoleApp"
|
||||||
|
targetdir (Bindir)
|
||||||
|
removeplatforms { "*gl3", "*d3d9" }
|
||||||
|
files { "tools/ps2rastertest/*.cpp" }
|
||||||
|
includedirs { "." }
|
||||||
|
libdirs { Libdir }
|
||||||
|
links { "librw" }
|
||||||
|
|
|
@ -16,3 +16,5 @@ ECODE(ERR_ENGINEOPEN,
|
||||||
"Engine could not be opened")
|
"Engine could not be opened")
|
||||||
ECODE(ERR_ENGINESTART,
|
ECODE(ERR_ENGINESTART,
|
||||||
"Engine could not be started")
|
"Engine could not be started")
|
||||||
|
ECODE(ERR_INVRASTER,
|
||||||
|
"Invalid raster format")
|
||||||
|
|
|
@ -908,6 +908,7 @@ Image::getFilename(const char *name)
|
||||||
Raster*
|
Raster*
|
||||||
Raster::create(int32 width, int32 height, int32 depth, int32 format, int32 platform)
|
Raster::create(int32 width, int32 height, int32 depth, int32 format, int32 platform)
|
||||||
{
|
{
|
||||||
|
// TODO: pass arguments through to the driver and create the raster there
|
||||||
Raster *raster = (Raster*)malloc(s_plglist.size);
|
Raster *raster = (Raster*)malloc(s_plglist.size);
|
||||||
assert(raster != nil);
|
assert(raster != nil);
|
||||||
raster->platform = platform ? platform : rw::platform;
|
raster->platform = platform ? platform : rw::platform;
|
||||||
|
|
|
@ -688,8 +688,10 @@ MatPipeline::instance(Geometry *g, InstanceData *inst, Mesh *m)
|
||||||
|
|
||||||
if(this->instanceCB)
|
if(this->instanceCB)
|
||||||
this->instanceCB(this, g, m, datap);
|
this->instanceCB(this, g, m, datap);
|
||||||
|
#ifdef RW_PS2
|
||||||
if(im.numBrokenAttribs)
|
if(im.numBrokenAttribs)
|
||||||
fixDmaOffsets(inst);
|
fixDmaOffsets(inst);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8*
|
uint8*
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -188,17 +188,16 @@ struct Ps2Raster
|
||||||
SWIZZLED4 = 0x4,
|
SWIZZLED4 = 0x4,
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32 tex0[2];
|
uint64 tex0;
|
||||||
uint32 paletteOffset; // from beginning of GS data;
|
uint32 paletteBase; // block address from beginning of GS data (words/64)
|
||||||
// in words/64
|
|
||||||
uint16 kl;
|
uint16 kl;
|
||||||
uint8 tex1low; // MXL and LCM of TEX1
|
uint8 tex1low; // MXL and LCM of TEX1
|
||||||
uint8 unk2;
|
uint8 unk2;
|
||||||
uint32 miptbp1[2];
|
uint64 miptbp1;
|
||||||
uint32 miptbp2[2];
|
uint64 miptbp2;
|
||||||
uint32 texelSize;
|
uint32 pixelSize; // in bytes
|
||||||
uint32 paletteSize;
|
uint32 paletteSize; // in bytes
|
||||||
uint32 gsSize;
|
uint32 totalSize; // total size of texture on GS in words
|
||||||
int8 flags;
|
int8 flags;
|
||||||
|
|
||||||
uint8 *data; //tmp
|
uint8 *data; //tmp
|
||||||
|
|
|
@ -221,13 +221,17 @@ struct Raster
|
||||||
PLUGINBASE
|
PLUGINBASE
|
||||||
int32 platform;
|
int32 platform;
|
||||||
|
|
||||||
int32 type; // hardly used
|
// TODO: use bytes
|
||||||
|
int32 type;
|
||||||
int32 flags;
|
int32 flags;
|
||||||
int32 format;
|
int32 format;
|
||||||
int32 width, height, depth;
|
int32 width, height, depth;
|
||||||
int32 stride;
|
int32 stride;
|
||||||
uint8 *texels;
|
uint8 *texels;
|
||||||
uint8 *palette;
|
uint8 *palette;
|
||||||
|
// TODO:
|
||||||
|
// original pixels, width, height, stride (used for locking)
|
||||||
|
// parent raster and offset
|
||||||
|
|
||||||
static Raster *create(int32 width, int32 height, int32 depth,
|
static Raster *create(int32 width, int32 height, int32 depth,
|
||||||
int32 format, int32 platform = 0);
|
int32 format, int32 platform = 0);
|
||||||
|
|
Loading…
Reference in New Issue