librw/src/engine.cpp

99 lines
1.8 KiB
C++
Raw Normal View History

2016-06-16 14:08:09 +02:00
#include <cstdio>
#include <cstdlib>
#include <cassert>
2016-06-16 14:08:09 +02:00
#include "rwbase.h"
#include "rwplg.h"
#include "rwpipeline.h"
#include "rwobjects.h"
#include "rwengine.h"
#include "ps2/rwps2.h"
#include "d3d/rwxbox.h"
#include "d3d/rwd3d.h"
#include "d3d/rwd3d8.h"
#include "d3d/rwd3d9.h"
#include "gl/rwgl3.h"
#include "gl/rwwdgl.h"
2016-06-16 14:08:09 +02:00
namespace rw {
Engine *engine;
Driver driver[NUM_PLATFORMS];
2016-06-16 14:08:09 +02:00
PluginList Engine::s_plglist = {sizeof(Engine), sizeof(Engine), nil, nil};
void
Engine::init(void)
{
2016-06-25 23:14:18 +02:00
ObjPipeline *defpipe = new ObjPipeline(PLATFORM_NULL);
for(uint i = 0; i < NUM_PLATFORMS; i++){
driver[i].defaultPipeline = defpipe;
driver[i].beginUpdate = null::beginUpdate;
driver[i].endUpdate = null::endUpdate;
driver[i].rasterCreate = null::rasterCreate;
driver[i].rasterLock = null::rasterLock;
driver[i].rasterUnlock = null::rasterUnlock;
driver[i].rasterNumLevels = null::rasterNumLevels;
driver[i].rasterFromImage = null::rasterFromImage;
}
Frame::dirtyList.init();
2016-06-25 23:14:18 +02:00
ps2::initializePlatform();
xbox::initializePlatform();
d3d8::initializePlatform();
d3d9::initializePlatform();
wdgl::initializePlatform();
gl3::initializePlatform();
}
void
Engine::open(void)
{
rw::engine = (Engine*)malloc(s_plglist.size);
s_plglist.construct(rw::engine);
}
2016-06-16 14:08:09 +02:00
namespace null {
void beginUpdate(Camera*) { }
void endUpdate(Camera*) { }
2016-06-16 14:08:09 +02:00
void
rasterCreate(Raster*)
{
assert(0 && "rasterCreate not implemented");
}
uint8*
rasterLock(Raster*, int32)
{
assert(0 && "lockRaster not implemented");
return nil;
2016-06-16 14:08:09 +02:00
}
void
rasterUnlock(Raster*, int32)
{
assert(0 && "unlockRaster not implemented");
}
int32
2016-06-16 15:35:45 +02:00
rasterNumLevels(Raster*)
2016-06-16 14:08:09 +02:00
{
assert(0 && "rasterNumLevels not implemented");
return 0;
}
void
rasterFromImage(Raster*, Image*)
{
assert(0 && "rasterFromImage not implemented");
}
}
}