Danke für die Antworten.

Nach genauerer Studie der API von Elumens (VisionStation) habe ich festgestellt, dass ich das doch nicht über die Events realisieren kann. Denn es gibt da ein paar Besonderheiten (Siehe fettgeschriebenen Code).

//Methode in der dll (Direct3D)

void Render()
{
// Setup the world, view, and projection matrices
SetupMatrices();

if( gDome )
{
gDome->SPIBegin();

gDome->SPIPreRender( SPI_3C_LEFT );
AppRender(); //Render der A6
gDome->SPIPostRender();

gDome->SPIPreRender( SPI_3C_RIGHT );
AppRender();
gDome->SPIPostRender();

gDome->SPIPreRender( SPI_3C_TOP );
AppRender();
gDome->SPIPostRender();

gDome->SPIEnd();

gDome->SPIFlush( SPI_3_CHANNEL, SPI_RENDER_NORMAL );
}

else
{
AppRender();
}

// Present the backbuffer contents to the display
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}

Mit AppRender ist die Routine der A6 gemeint. Nun gibt es folgende Fussangeln:


  • Das ganze gerender findet zwischen SPIBegin() und SPIEnd() statt.
  • In der AppRender() darf kein Present() vorkommen. Da wird in der API ausdrücklich darauf hingewiesen. Ich gehe mal davon aus, dass die Engine dies aber macht.


Nun müsste ich also die Rendermethode der A6 Engine in die Methode AppRender() ohne Present() abbilden und im C-Script A6 mitteilen, dass alles über die dll gerendert werden muss. Ist dies so möglich und wie teile ich dies im C-Script mit? render_sky?

Schönen Gruß,

Marcel