#include <VedaMachineDreamcast.h>
Inherits VirtualMachine.
Definition at line 22 of file VedaMachineDreamcast.h.
Public Types | |
enum | eVMResult { vmr_OK = 0, vmr_FAILED } |
error enum for InitMachine() More... | |
enum | InternalObject3DBuffer_InitBit { bOb3D_VertexNormal = 1, bOb3D_VertexUVMapping = 2, bOb3D_VertexRGBA = 4 } |
see VirtualMachine::NewObject3DBuffer() More... | |
enum | eMachineLocalization { eMachineLocalization_LocalisationNotImplemented = 0, eMachineLocalization_English, eMachineLocalization_French, eMachineLocalization_SpanishCastellano, eMachineLocalization_German, eMachineLocalization_Italian, eMachineLocalization_Polish, eMachineLocalization_Portuguese } |
This enum spots a cultural langage. returned by GetCurrentWorldLocalizationEnum(). More... | |
Public Member Functions | |
VedaMachineDreamcast (void) | |
Constructor. | |
virtual | ~VedaMachineDreamcast (void) |
Destructor. | |
virtual eVMResult | InitMachine () |
Init the machine. It would open a screen and do the init for each theme (3D,sound,...) the machine closing should be done at deletion. | |
virtual void | NewObject3DBuffer (InternalObject3DBuffer **_ppVertexAndPolygonBufferOut, unsigned int _maxNbVertex, unsigned int _maxNbTriangle, unsigned int _extraMemberFlags) |
Ask the Creation of a new InternalObject3DBuffer you can then fill with InternalObject3DBuffer::GetFirstVertex() , InternalObject3DBuffer::GetFirstTriangle() and InternalObject3DBuffer::SetNumberOfActiveTriangle() . Then the object can be positionned with the matrix methods, and drawn with RenderMesh() The object shape can be dynamic and rebuilt, until a call to CompileObject3DBufferAsStatic(). In edition mode, object has to be destroyed with DeleteObject3DBuffer(). | |
virtual void | NewTexture (InternalTexture **_ppTextureOut) |
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture(). | |
virtual void | DeleteTexture (InternalTexture **_ppTextureToDestroy) |
Destroy objects previously created with NewTexture(). | |
virtual void | NewViewPortChild (InternalViewPort **_ppViewPortOut, InternalViewPort *_pFatherViewPort=0L) |
Ask the Creation of a new InternalViewPort, that must be the child of another ViewPort, specified by _pFatherViewPort.if no father is specified, the new ViewPort will be the child of the default root ViewPort. To create another Root ViewPort, create a texture and use VirtualMedia::NewViewPortOnTexture(). In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | NewViewPortOnTexture (InternalViewPort **_ppViewPortOut, InternalTexture *_pRootTexture, unsigned int _np2PixelWidth, unsigned int _np2PixelHeight, InternalTexture::TextureImageLayerEnum _layerToAffect) |
Ask the Creation of a new Root InternalViewPort, that will render on a texture image. specified by _pRootTexture. You got to create a texture first for parameter _pRootTexture. In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | DeleteViewPort (InternalViewPort **_ppViewPortToDestroy) |
Destroy any objects previously created with NewViewPortChild() or NewViewPortOnTexture(). | |
virtual void | SwapScreenBuffer () |
Swap buffer so that what was drawn on the main screen is shown. | |
virtual float | GetPlayFrequency () |
Return the machine main play frequency, in herz, (tick per sec). | |
virtual void | SetSoundCurrentTime (int _seconds, unsigned int _fraction) |
force a date to the clock passed to the sound objects. | |
virtual void | SetSoundVolume (float _newVolumeValue) |
tool: change main volume [0,1]. Yes, you can saturate when >1. | |
virtual float | GetSoundVolume () |
tool: get main volume value [0,1]. | |
virtual void | GetCurrentSoundBufferImage (float **const _ppSoundBuffer, unsigned int *_pLength) const |
For Information, an image of the current sound buffer. This is always a 2 float(left,right) table: The buffer size may vary. It can be used by preview methods or live effects. | |
virtual eMachineLocalization | GetCurrentWorldLocalizationEnum () |
Return the language of the machine, as a simple enum. It can be used to display one or the other langage. | |
virtual void | ProcessInterface () |
Process the Machine's interface messages (mouse,keyboard,...), in the real time. Then methods like VirtualMachine::GetQuitMessage() are updated. | |
void | SetRate (float _rate) |
Process the Machine's interface messages (mouse,keyboard,...), in the real time. Then methods like VirtualMachine::GetQuitMessage() are updated. | |
virtual void | NewObject3DBuffer (InternalObject3DBuffer **_ppVertexAndPolygonBufferOut, unsigned int _maxNbVertex, unsigned int _maxNbTriangle, unsigned int _extraMemberFlags)=0 |
Ask the Creation of a new InternalObject3DBuffer you can then fill with InternalObject3DBuffer::GetFirstVertex() , InternalObject3DBuffer::GetFirstTriangle(). Important: All the vertex members and polygon index are inited to zero when built. and InternalObject3DBuffer::SetNumberOfActiveTriangle() . Then the object can be positionned with the matrix methods in VirtualMachine::InternalViewPort, and drawn with VirtualMachine::InternalViewPort::RenderMesh(). The object shape can be dynamic and rebuilt, until a call to VirtualMachine::InternalObject3DBuffer::CompileAsStatic(). In edition compilation mode, objects had to be destroyed with VirtualMachine::DeleteObject3DBuffer(). | |
virtual void | DeleteObject3DBuffer (InternalObject3DBuffer **_ppBufferToDestroy)=0 |
Destroy objects previously created with NewObject3DBuffer(). | |
virtual void | NewTexture (InternalTexture **_ppTextureOut)=0 |
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture(). | |
virtual void | DeleteTexture (InternalTexture **_ppTextureToDestroy)=0 |
Destroy objects previously created with NewTexture(). | |
virtual void | NewViewPortChild (InternalViewPort **_ppViewPortOut, InternalViewPort *_pFatherViewPort=0L)=0 |
Ask the Creation of a new InternalViewPort, that must be the child of another ViewPort, specified by _pFatherViewPort.if no father is specified, the new ViewPort will be the child of the default root ViewPort. To create another Root ViewPort, create a texture and use VirtualMedia::NewViewPortOnTexture(). In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | NewViewPortOnTexture (InternalViewPort **_ppViewPortOut, InternalTexture *_pRootTexture, unsigned int _np2PixelWidth, unsigned int _np2PixelHeight, InternalTexture::TextureImageLayerEnum _layerToAffect)=0 |
Ask the Creation of a new Root InternalViewPort, that will render on a texture image. specified by _pRootTexture. You got to create a texture first for parameter _pRootTexture. In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort(). | |
virtual void | DeleteViewPort (InternalViewPort **_ppViewPortToDestroy)=0 |
Destroy any objects previously created with NewViewPortChild() or NewViewPortOnTexture(). If it has children, children are detached , not destoyed, but are invalid. | |
InternalViewPort * | GetDefaultViewPort () |
Access to the default screen object created with InitMachine(). | |
virtual void | EnableMediaSound (SoundInterface *_pNoisyObject, bool _enable=true) |
Register a SoundInterface object that will then generate a mixed sound through SoundInterface::ProcessSoundInterupt(). The sound will start instantly. if false, Unregister a media object previously registered with EnableMediaSound(,true). The sound stops instantly. Note, that if you choose to use the BaseObject implementation, class VirtualMedia will manage the sound in its own way, and you will not need to use this method. | |
virtual void | ShutTheFuckUp () |
Now, AzurVeda virtual machine implements a very efficient BASS technology known as "ShutTheFuckUp" ! Yes, it will unregister all sound objects to silent the machine. | |
bool | GetQuitMessage () |
If true, means that the user want to quit:. | |
virtual bool | FileRequester (const char *_pDisplayString, char *_pResultFileName, unsigned int _nameMaxLength)=0 |
In edition mode, ask a file path to a file requester. the string format should vary, but will be compatible with LoadFile() and SaveFile(). | |
virtual bool | SaveFile (const char *_pFilePath, const char *_chunkToWrite, unsigned int _ChunkLength, bool _append=false)=0 |
DEPRECATED for the moment: use class PackResource instead load a file into a memory chunk. You can load all in one row, or stream. memory is to be deleted by the CALLER with operator: "delete [] pointer", for each succesfull call. return 0L if failed. write a file from a memory chunk. You can save all in one row, or stream. | |
virtual void | Sleep (unsigned int _milliseconds)=0 |
in edition mode, redirection of machine task wait. | |
Static Public Member Functions | |
static void | RenderMesh_Draw3D_Flat (DCInternalObject3DBuffer *pbuffer) |
tool method used by pass1(opque) and 2(transp.). drawn after flags&matrix are set. | |
Protected Attributes | |
VedaMachineDreamcast * | m_pNextMachine |
unsigned int | m_FirstController |
1st pad: | |
unsigned int | m_MachineLocalization |
unsigned int | m_PixelWidth |
unsigned int | m_PixelHeight |
VedaMachineDreamcast::DCInternalViewPort * | m_pCurrentActiveViewport |
unsigned int | m_TotalPlaySize |
sound stuff | |
int | m_LastStartPlayTime_SecondUnit |
unsigned int | m_LastStartPlayTime_SecondFrac |
unsigned int | m_CurrentPolyListIndex |
unsigned char * | m_pAllocChunkForTranslucentList |
the real alloc for m_pTranslucentMatrixList, because it must be 32b aligned. | |
translucentMeshToRender * | m_pTranslucentMeshList |
unsigned int | m_NumberOfTranslucentObjects |
unsigned int | m_LastProcessInterfaceClock |
unsigned int | m_lastButtonCondition |
last | |
unsigned int | m_interfaceStateBits |
unsigned int | m_ChoicePannelIndex |
float | m_QuitChoicePanelAlpha |
float | m_TimePanelAlpha |
float | m_timerate |
float | m_StartTime |
float | m_TimeSpeed |
int | m_ClockStart |
InternalViewPort * | m_pDefaultViewPort |
this is the default viewport, it stands the whole screen by default. Used by GetDefaultViewPort(). | |
bool | m_QuitMessage |
If true, means that the user want to quit. Updated by ProcessInterface(). | |
SoundUpdateListCell * | m_pFirstSoundObject |
start of the chained list of the sound object update method: | |
Static Protected Attributes | |
static VedaMachineDreamcast * | m_pFirstMachine |
link the machine to a static machine list, because sound mixing is static for more than one machine: | |
static unsigned int | m_MixRate |
sound mix rate: 22050,44100 , ... | |
static float | m_fPlayFrequency |
float version: | |
static const unsigned int | m_SoundBufferLength = 4096 |
32768 | |
static const unsigned int | m_NumberOfBuf = 16 |
static short * | m_pShortSoundBuffer |
static float * | m_pFloatSoundBufferAlloc |
static unsigned int | m_SoundBufferIndex |
static unsigned int | m_LastSoundBufferLength [m_NumberOfBuf] |
static volatile bool | m_SoundThreadGotToQuit |
static volatile bool | m_SoundThreadIsOn |
static const unsigned int | m_TranslucentListMaximumDepth = 240 |
translucent mesh list, for pass 2 rendering for kgl. cf SwapScreenBuffer() | |
static const unsigned int | m_bs_QuitChoicePanelIsOn = 1 |
Classes | |
struct | _translucentMeshToRender |
32b aligned !!! More... | |
class | DCInternalObject3DBuffer |
Nested class that implements a 3D object as a vertex and a polygon list. You ask the creation of it with VirtualMachine::NewObject3DBuffer(), then defines its shape by filling the list you get with GetFirstVertex() and GetFirstTriangle(), then it can be rendered with VirtualMachine::RenderMesh(). In order to optimize a static shape, use VirtualMachine::CompileObject3DBufferAsStatic() In edition mode, it can be destroyed with VirtualMachine::DeleteObject3DBuffer(). More... | |
class | DCInternalTexture |
class | DCInternalViewPort |
|
Constructor.
|
|
Destructor.
|
|
Destroy objects previously created with NewTexture().
|
|
Destroy any objects previously created with NewViewPortChild() or NewViewPortOnTexture().
|
|
For Information, an image of the current sound buffer. This is always a 2 float(left,right) table: The buffer size may vary. It can be used by preview methods or live effects.
Implements VirtualMachine. |
|
Return the language of the machine, as a simple enum. It can be used to display one or the other langage.
Implements VirtualMachine. |
|
Return the machine main play frequency, in herz, (tick per sec).
Implements VirtualMachine. |
|
tool: get main volume value [0,1].
Implements VirtualMachine. |
|
Init the machine. It would open a screen and do the init for each theme (3D,sound,...) the machine closing should be done at deletion.
Implements VirtualMachine. |
|
Ask the Creation of a new InternalObject3DBuffer you can then fill with InternalObject3DBuffer::GetFirstVertex() , InternalObject3DBuffer::GetFirstTriangle() and InternalObject3DBuffer::SetNumberOfActiveTriangle() . Then the object can be positionned with the matrix methods, and drawn with RenderMesh() The object shape can be dynamic and rebuilt, until a call to CompileObject3DBufferAsStatic(). In edition mode, object has to be destroyed with DeleteObject3DBuffer().
|
|
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture().
|
|
Ask the Creation of a new InternalTexture, then used to render 3D objects with RenderMesh(). In edition mode, InternalTexture has to be destroyed with DeleteTexture().
|
|
Ask the Creation of a new InternalViewPort, that must be the child of another ViewPort, specified by _pFatherViewPort.if no father is specified, the new ViewPort will be the child of the default root ViewPort. To create another Root ViewPort, create a texture and use VirtualMedia::NewViewPortOnTexture(). In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort().
|
|
Ask the Creation of a new Root InternalViewPort, that will render on a texture image. specified by _pRootTexture. You got to create a texture first for parameter _pRootTexture. In edition mode, each InternalViewPort has to be destroyed with DeleteViewPort().
|
|
Process the Machine's interface messages (mouse,keyboard,...), in the real time. Then methods like VirtualMachine::GetQuitMessage() are updated.
Implements VirtualMachine. |
|
tool method used by pass1(opque) and 2(transp.). drawn after flags&matrix are set.
|
|
Process the Machine's interface messages (mouse,keyboard,...), in the real time. Then methods like VirtualMachine::GetQuitMessage() are updated.
Definition at line 532 of file VedaMachineDreamcast.h. References m_timerate. |
|
force a date to the clock passed to the sound objects.
Implements VirtualMachine. |
|
tool: change main volume [0,1]. Yes, you can saturate when >1.
Implements VirtualMachine. |
|
Swap buffer so that what was drawn on the main screen is shown.
|
|
1st pad:
Definition at line 549 of file VedaMachineDreamcast.h. |
|
float version:
Definition at line 564 of file VedaMachineDreamcast.h. |
|
last
Definition at line 630 of file VedaMachineDreamcast.h. |
|
sound mix rate: 22050,44100 , ...
Definition at line 562 of file VedaMachineDreamcast.h. |
|
the real alloc for m_pTranslucentMatrixList, because it must be 32b aligned.
Definition at line 601 of file VedaMachineDreamcast.h. |
|
this is the default viewport, it stands the whole screen by default. Used by GetDefaultViewPort().
Definition at line 840 of file VirtualMachine.h. Referenced by VirtualMachine::GetDefaultViewPort(). |
|
link the machine to a static machine list, because sound mixing is static for more than one machine:
Definition at line 532 of file VedaMachineDreamcast.h. |
|
start of the chained list of the sound object update method:
Definition at line 852 of file VirtualMachine.h. |
|
If true, means that the user want to quit. Updated by ProcessInterface().
Definition at line 843 of file VirtualMachine.h. Referenced by VirtualMachine::GetQuitMessage(). |
|
32768
Definition at line 584 of file VedaMachineDreamcast.h. |
|
sound stuff
Definition at line 568 of file VedaMachineDreamcast.h. |
|
translucent mesh list, for pass 2 rendering for kgl. cf SwapScreenBuffer()
Definition at line 599 of file VedaMachineDreamcast.h. |
/\/\ 4 N k ! N D _______ _ __ ___ _____ ___ _ _ ____ ___________ __//___ /________ |/ / ___________\_______/ \ / _ _ \/ _ / _ / _/_/____/ _ __ / / / / / / / \ \/ / / \ \ / \\___/___/___/ ¯ _____/_____/ ______\___/_____/\________\\ \________/_ ___ __ l____\ /elD! http://www.m4nkind.com \____/