MODULE = Ogre     PACKAGE = Ogre::RenderSystem


String
RenderSystem::getName()

## ConfigOptionMap & RenderSystem::getConfigOptions()

void
RenderSystem::setConfigOption(name, value)
    String  name
    String  value

HardwareOcclusionQuery *
RenderSystem::createHardwareOcclusionQuery()

void
RenderSystem::destroyHardwareOcclusionQuery(hq)
    HardwareOcclusionQuery * hq

String
RenderSystem::validateConfigOptions()

##RenderWindow *
##RenderSystem::initialise(autoCreateWindow, windowTitle=String("OGRE Render Window"))
##    bool  autoCreateWindow
##    String  windowTitle

void
RenderSystem::reinitialise()

void
RenderSystem::shutdown()

# why are these not Real ?
void
RenderSystem::setAmbientLight(float r, float g, float b)

void
RenderSystem::setShadingType(int so)
  C_ARGS:
    (ShadeOptions)so

void
RenderSystem::setLightingEnabled(bool enabled)

void
RenderSystem::setWBufferEnabled(bool enabled)

bool
RenderSystem::getWBufferEnabled()

#### xxx: left off final NameValuePairList arg for now
#### RenderWindow * RenderSystem::createRenderWindow(const String &name, unsigned int width, unsigned int height, bool fullScreen, NameValuePairList *miscParams)
##RenderWindow *
##RenderSystem::createRenderWindow(name, width, height, fullScreen)
##    String  name
##    unsigned int  width
##    unsigned int  height
##    bool  fullScreen
##  C_ARGS:
##    name, width, height, fullScreen, 0
##
#### xxx: left off final NameValuePairList arg for now
#### RenderTexture * RenderSystem::createRenderTexture(const String &name, unsigned int width, unsigned int height, TextureType texType=TEX_TYPE_2D, PixelFormat internalFormat=PF_X8R8G8B8, NameValuePairList *miscParams)
##RenderTexture *
##RenderSystem::createRenderTexture(name, width, height, texType=TEX_TYPE_2D, internalFormat=PF_X8R8G8B8)
##    String  name
##    unsigned int  width
##    unsigned int  height
##    int  texType
##    int  internalFormat
##  C_ARGS:
##    name, width, height, (TextureType)texType, (PixelFormat)internalFormat, 0

MultiRenderTarget *
RenderSystem::createMultiRenderTarget(name)
    String  name

void
RenderSystem::destroyRenderWindow(name)
    String  name

void
RenderSystem::destroyRenderTexture(name)
    String  name

void
RenderSystem::destroyRenderTarget(name)
    String  name

void
RenderSystem::attachRenderTarget(target)
    RenderTarget * target
  C_ARGS:
    *target

RenderTarget *
RenderSystem::getRenderTarget(name)
    String  name

RenderTarget *
RenderSystem::detachRenderTarget(name)
    String  name

## RenderTargetIterator RenderSystem::getRenderTargetIterator()

String
RenderSystem::getErrorDescription(long errorNumber)

void
RenderSystem::setWaitForVerticalBlank(bool enabled)

bool
RenderSystem::getWaitForVerticalBlank()

## void RenderSystem::convertColourValue(const ColourValue &colour, uint32 *pDest)

int
RenderSystem::getColourVertexElementType()

void
RenderSystem::setStencilCheckEnabled(bool enabled)

void
RenderSystem::setStencilBufferParams(int func=CMPF_ALWAYS_PASS, uint32 refValue, uint32 mask=0xFFFFFFFF, int stencilFailOp=SOP_KEEP, int depthFailOp=SOP_KEEP, int passOp=SOP_KEEP, bool twoSidedOperation=false)
  C_ARGS:
    (CompareFunction)func, refValue, mask, (StencilOperation)stencilFailOp, (StencilOperation)depthFailOp, (StencilOperation)passOp, twoSidedOperation

void
RenderSystem::setVertexDeclaration(VertexDeclaration *decl)

void
RenderSystem::setVertexBufferBinding(VertexBufferBinding *binding)

void
RenderSystem::setNormaliseNormals(bool normalise)

const RenderSystemCapabilities *
RenderSystem::getCapabilities()

void
RenderSystem::bindGpuProgram(GpuProgram *prg)

void
RenderSystem::bindGpuProgramParameters(gptype, params)
    int  gptype
    GpuProgramParameters * params
  CODE:
    GpuProgramParametersSharedPtr paramsPtr = GpuProgramParametersSharedPtr(params);
    THIS->bindGpuProgramParameters((GpuProgramType)gptype, paramsPtr);

void
RenderSystem::bindGpuProgramPassIterationParameters(int gptype)
  C_ARGS:
    (GpuProgramType)gptype

void
RenderSystem::unbindGpuProgram(int gptype)
  C_ARGS:
    (GpuProgramType)gptype

bool
RenderSystem::isGpuProgramBound(int gptype)
  C_ARGS:
    (GpuProgramType)gptype

## void RenderSystem::setClipPlanes(const PlaneList &clipPlanes)


#### void RenderSystem::setClipPlane(ushort index, Plane &p)
#### void RenderSystem::setClipPlane(ushort index, Real A, Real B, Real C, Real D)
##void
##RenderSystem::setClipPlane(index, ...)
##    unsigned short  index
##  CODE:
##    if (items == 3 && sv_isobject(ST(2)) && sv_derived_from(ST(2), "Ogre::Plane")) {
##        unsigned short index = (unsigned short)SvUV(ST(1));
##        Plane *p = (Plane *) SvIV((SV *) SvRV(ST(2)));
##        THIS->setClipPlane(index, *p);
##    }
##    else if (items == 6) {
##        THIS->setClipPlane((unsigned short)SvUV(ST(1)), (Real)SvNV(ST(2)), (Real)SvNV(ST(3)), (Real)SvNV(ST(4)), (Real)SvNV(ST(5)));
##    }
##    else {
##        croak("Usage: Ogre::RenderSystem::setClipPlane(THIS, index, plane) or (THIS, index, A, B, C, D)\n");
##    }
##
##void
##RenderSystem::enableClipPlane(unsigned short index, bool enable)

void
RenderSystem::setInvertVertexWinding(bool invert)

void
RenderSystem::setScissorTest(bool enabled, size_t left=0, size_t top=0, size_t right=800, size_t bottom=600)

void
RenderSystem::clearFrameBuffer(buffers, colour=&ColourValue::Black, depth=1.0f, stencil=0)
    unsigned int  buffers
    const ColourValue * colour
    Real  depth
    unsigned short  stencil
  C_ARGS:
    buffers, *colour, depth, stencil

Real
RenderSystem::getHorizontalTexelOffset()

Real
RenderSystem::getVerticalTexelOffset()

Real
RenderSystem::getMinimumDepthInputValue()

Real
RenderSystem::getMaximumDepthInputValue()

void
RenderSystem::setCurrentPassIterationCount(size_t count)

## void RenderSystem::addListener(Listener *l)

## void RenderSystem::removeListener(Listener *l)

## xxx: const StringVector & RenderSystem::getRenderSystemEvents()

void
RenderSystem::preExtraThreadsStarted()

void
RenderSystem::postExtraThreadsStarted()

void
RenderSystem::registerThread()

void
RenderSystem::unregisterThread()