mirror of
https://github.com/aap/librw.git
synced 2025-01-24 01:32:18 +00:00
90 lines
1.5 KiB
C++
90 lines
1.5 KiB
C++
|
#include <cstdio>
|
||
|
#include <cstdlib>
|
||
|
#include <cstring>
|
||
|
#include <cassert>
|
||
|
|
||
|
#include "../rwbase.h"
|
||
|
#include "../rwerror.h"
|
||
|
#include "../rwplg.h"
|
||
|
#include "../rwpipeline.h"
|
||
|
#include "../rwobjects.h"
|
||
|
#include "../rwengine.h"
|
||
|
#include "../rwplugins.h"
|
||
|
#include "rwd3d.h"
|
||
|
#include "rwd3d9.h"
|
||
|
|
||
|
namespace rw {
|
||
|
namespace d3d9 {
|
||
|
using namespace d3d;
|
||
|
|
||
|
// Skin
|
||
|
|
||
|
static void*
|
||
|
skinOpen(void *o, int32, int32)
|
||
|
{
|
||
|
skinGlobals.pipelines[PLATFORM_D3D9] = makeSkinPipeline();
|
||
|
return o;
|
||
|
}
|
||
|
|
||
|
static void*
|
||
|
skinClose(void *o, int32, int32)
|
||
|
{
|
||
|
return o;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
initSkin(void)
|
||
|
{
|
||
|
Driver::registerPlugin(PLATFORM_D3D9, 0, ID_SKIN,
|
||
|
skinOpen, skinClose);
|
||
|
}
|
||
|
|
||
|
ObjPipeline*
|
||
|
makeSkinPipeline(void)
|
||
|
{
|
||
|
ObjPipeline *pipe = new ObjPipeline(PLATFORM_D3D9);
|
||
|
pipe->instanceCB = defaultInstanceCB;
|
||
|
pipe->uninstanceCB = defaultUninstanceCB;
|
||
|
pipe->renderCB = defaultRenderCB;
|
||
|
pipe->pluginID = ID_SKIN;
|
||
|
pipe->pluginData = 1;
|
||
|
return pipe;
|
||
|
}
|
||
|
|
||
|
// MatFX
|
||
|
|
||
|
static void*
|
||
|
matfxOpen(void *o, int32, int32)
|
||
|
{
|
||
|
matFXGlobals.pipelines[PLATFORM_D3D9] = makeMatFXPipeline();
|
||
|
return o;
|
||
|
}
|
||
|
|
||
|
static void*
|
||
|
matfxClose(void *o, int32, int32)
|
||
|
{
|
||
|
return o;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
initMatFX(void)
|
||
|
{
|
||
|
Driver::registerPlugin(PLATFORM_D3D9, 0, ID_MATFX,
|
||
|
matfxOpen, matfxClose);
|
||
|
}
|
||
|
|
||
|
ObjPipeline*
|
||
|
makeMatFXPipeline(void)
|
||
|
{
|
||
|
ObjPipeline *pipe = new ObjPipeline(PLATFORM_D3D9);
|
||
|
pipe->instanceCB = defaultInstanceCB;
|
||
|
pipe->uninstanceCB = defaultUninstanceCB;
|
||
|
pipe->renderCB = defaultRenderCB;
|
||
|
pipe->pluginID = ID_MATFX;
|
||
|
pipe->pluginData = 0;
|
||
|
return pipe;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|