Also ich habs durchgeschaut und ich hab keine Klammer zu wenig gefunden, wenn du willst kannst du mal selbst schauen:
#include "BattleStar.h"
// ******************************************************************
// Nachrichtenfunktion für ein Bild
bsResult bsGUIMovie::ReceiveMessage(const bsGUIMessage* pMsg)
{
bsGUIVertex aVertex[4];
switch(pMsg->Type)
{
case BS_GMT_RENDER:
// Wenn das Element unsichbsar ist, wird es nicht gerendert.
if(!m_bVisible) break;
if(pMsg->aiInt[0] == 2)
{
// Bild zeichnen
m_pGUI->AddRect(m_vPosition * m_pGUI->m_vScaling, m_vSize * m_pGUI->m_vScaling,
bsColor(0.0f, 0.0f, 0.0f), m_vTopLeft, m_vBottomRight - m_vTopLeft,
aVertex);
// Textur setzen
bsDirect3D:
etTexture(0, m_pVideo->GetRenderer()->GetTexture());
// Vertexformat und Render-States
bsDirect3D:
etFVF(BS_GUI_FVF);
bsDirect3D:
etRS(D3DRS_ZENABLE, FALSE);
bsDirect3D:
etRS(D3DRS_ZWRITEENABLE, FALSE);
bsDirect3D:
etRS(D3DRS_COLORVERTEX, TRUE);
bsDirect3D:
etRS(D3DRS_ALPHABLENDENABLE, TRUE);
bsDirect3D:
etRS(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
bsDirect3D:
etRS(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
bsDirect3D:
etTSS(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
bsDirect3D:
etTSS(0, D3DTSS_COLORARG1, D3DTA_CURRENT);
bsDirect3D:
etTSS(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);
bsDirect3D:
etTSS(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
bsDirect3D:
etTSS(0, D3DTSS_ALPHAARG1, D3DTA_CURRENT);
bsDirect3D:
etTSS(0, D3DTSS_ALPHAARG2, D3DTA_TEXTURE);
// Dreiecke zeichnen
bsDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex,
sizeof(bsGUIVertex));
}
break;
}
return BS_OK;
}
// ******************************************************************
// Erstellung eines Bildes
bsResult bsGUI::CreateMovie(int iID,
int iPage,
char* pcFilename,
BOOL bLooping,
bsVec2 vPosition,
bsVec2 vSize,
bsVec2 vTopLeft, // = bsVec2(0.0f, 0.0f),
bsVec2 vBottomRight); // = bsVec2(0.0f, 0.0f));
{
bsGUIElement* pElement;
bsGUIMovie* pMovie;
// Video erstellen
pElement = CreateElement(iID, BS_GET_MOVIE, iPage, vPosition, vSize);
if(pElement == NULL) BS_ERROR("Fehler beim Erstellen des Videos!", BS_ERROR);
// Daten eintragen
pMovie = (bsGUIMovie*)(pElement);
if(pMovie->Init(pcFilename)
BS_ERROR("Felher beim Laden des Videos!", BS_ERROR);
pMovie->m_bLooping = bLooping
pMovie->m_vPosition = vPosition;
pMovie->m_vSize = vSize;
pMovie->m_vTopLeftTex = vTopLeftTex;
pMovie->m_vBottomRightTex = vBottomRightTex;
return BS_OK;
}
// ******************************************************************
P.S. Ich Meine Movie(Film), weil bei Move bräuchte ich ja keine neue Funktion, das könnte ich gleich mit in ReceiveMessage mit erledigen