draw_begin()
Ruft die DirectX BeginScene Funktion auf, falls die Szene nicht bereits begonnen wurde ist. Erforderlich, um mittels benutzerdefinierten DirectX Funktionen auf den Bildschirm zu zeichnen.
Rückgabewert:
Pointer auf Direct3D Device.
Bemerkungen:
- Nicht nötig bei draw_Funktionen oder für das Rendern von benutzerdefinierten Render- oder Material-Events.
- Das Schließen der Szene erfolgt automatisch.
Geschwindigkeit:
schnell
Beispiel:
#include <acknex.h>
#include <default.c>
#include <d3d9.h>
// define a suited vertex struct
typedef struct VERTEX_FLAT {
float x,y,z;
float rhw;
D3DCOLOR color;
} VERTEX_FLAT;
#define D3DFVF_FLAT (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
// draw a red/blue/green triangle
function main()
{
wait(1); //wait until the D3D Device is opened
// define the three corner vertices
VERTEX_FLAT v[3];
v[0].x = 10.0; v[0].y = 10.0; v[0].color = 0xFFFF0000; // the red corner
v[1].x = 310.0; v[1].y = 10.0; v[1].color = 0xFF0000FF; // the blue corner
v[2].x = 10.0; v[2].y = 310.0; v[2].color = 0xFF00FF00; // the green corner
v[0].z = v[1].z = v[2].z = 0.0; // z buffer - paint over everything
v[0].rhw = v[1].rhw = v[2].rhw = 1.0; // no perspective
while(1)
{
// open the scene and get the active D3D device
LPDIRECT3DDEVICE9 pd3dDev;
pd3dDev = (LPDIRECT3DDEVICE9)draw_begin();
if (!pd3dDev) return;
// set some render and stage states
pd3dDev->SetRenderState(D3DRS_ALPHABLENDENABLE,FALSE);
pd3dDev->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE);
pd3dDev->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG2);
// now draw the triangle
pd3dDev->SetFVF(D3DFVF_FLAT);
pd3dDev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,1,(LPVOID)v,sizeof(VERTEX_FLAT));
// no need to close the scene - this is handled by the engine
wait(1);
}
}
Siehe auch:
draw_text, draw_point3d, draw_line, draw_quad
► Aktuelle Version Online