more work on initialization

This commit is contained in:
aap
2016-06-25 23:14:18 +02:00
parent a906d58bcb
commit dd901ebfa3
14 changed files with 132 additions and 80 deletions

View File

@@ -586,14 +586,9 @@ copyNativeRaster(void *dst, void *, int32 offset, int32)
return dst;
}
void
registerNativeRaster(void)
static void*
nativeOpen(void*, int32, int32)
{
nativeRasterOffset = Raster::registerPlugin(sizeof(D3dRaster),
0x12340000 | PLATFORM_D3D9,
createNativeRaster,
destroyNativeRaster,
copyNativeRaster);
driver[PLATFORM_D3D8].rasterNativeOffset = nativeRasterOffset;
driver[PLATFORM_D3D8].rasterCreate = rasterCreate;
driver[PLATFORM_D3D8].rasterLock = rasterLock;
@@ -609,5 +604,22 @@ registerNativeRaster(void)
driver[PLATFORM_D3D9].rasterFromImage = rasterFromImage;
}
static void*
nativeClose(void*, int32, int32)
{
printf("d3d native close\n");
}
void
registerNativeRaster(void)
{
Engine::registerPlugin(0, ID_RASTERD3D9, nativeOpen, nativeClose);
nativeRasterOffset = Raster::registerPlugin(sizeof(D3dRaster),
ID_RASTERD3D9,
createNativeRaster,
destroyNativeRaster,
copyNativeRaster);
}
}
}

View File

@@ -21,6 +21,8 @@ using namespace d3d;
void
initializePlatform(void)
{
if(nativeRasterOffset == 0)
registerNativeRaster();
driver[PLATFORM_D3D8].defaultPipeline = makeDefaultPipeline();
}

View File

@@ -28,6 +28,8 @@ using namespace d3d;
void
initializePlatform(void)
{
if(nativeRasterOffset == 0)
registerNativeRaster();
driver[PLATFORM_D3D9].defaultPipeline = makeDefaultPipeline();
}

View File

@@ -20,6 +20,7 @@ namespace xbox {
void
initializePlatform(void)
{
registerNativeRaster();
driver[PLATFORM_XBOX].defaultPipeline = makeDefaultPipeline();
}
@@ -899,14 +900,9 @@ copyNativeRaster(void *dst, void *, int32 offset, int32)
return dst;
}
void
registerNativeRaster(void)
static void*
nativeOpen(void*, int32, int32)
{
nativeRasterOffset = Raster::registerPlugin(sizeof(XboxRaster),
0x12340000 | PLATFORM_XBOX,
createNativeRaster,
destroyNativeRaster,
copyNativeRaster);
driver[PLATFORM_XBOX].rasterNativeOffset = nativeRasterOffset;
driver[PLATFORM_XBOX].rasterCreate = rasterCreate;
driver[PLATFORM_XBOX].rasterLock = rasterLock;
@@ -914,6 +910,23 @@ registerNativeRaster(void)
driver[PLATFORM_XBOX].rasterNumLevels = rasterNumLevels;
}
static void*
nativeClose(void*, int32, int32)
{
printf("xbox native close\n");
}
void
registerNativeRaster(void)
{
Engine::registerPlugin(0, ID_RASTERXBOX, nativeOpen, nativeClose);
nativeRasterOffset = Raster::registerPlugin(sizeof(XboxRaster),
ID_RASTERXBOX,
createNativeRaster,
destroyNativeRaster,
copyNativeRaster);
}
Texture*
readNativeTexture(Stream *stream)
{