igraphic 0.2.0
Contrats graphiques chargeables : IGraphic2Module / IGraphic3Module
Loading...
Searching...
No Matches
IGraphic3Module Class Referenceabstract

A vendor's 3D factory. Extends IGraphic2Module : implementing it means implementing all of the 2D too, and the window it returns is an IWindow3, hence usable as an IWindow2. More...

#include <IGraphic3Module.hpp>

Inheritance diagram for IGraphic3Module:
Collaboration diagram for IGraphic3Module:

Public Member Functions

virtual ~IGraphic3Module ()=default
 
virtual graphic::IWindow3createWindow (int32_t screenWidth, int32_t screenHeight, std::string title)=0
 
virtual graphic::ICameracreateCamera (Vector3f position, Vector3f target, float fov)=0
 
virtual void deleteCamera (graphic::ICamera *)=0
 
virtual graphic::IMeshcreateMesh (std::string path)=0
 
virtual void deleteMesh (graphic::IMesh *mesh)=0
 
virtual graphic::IAnimationSetcreateAnimationSet (std::string path)=0
 
virtual void deleteAnimationSet (graphic::IAnimationSet *animations)=0
 
virtual graphic::IModelcreateModel (graphic::IMesh *mesh)=0
 
virtual void deleteModel (graphic::IModel *model)=0
 
- Public Member Functions inherited from IGraphic2Module
virtual ~IGraphic2Module ()=default
 
virtual void deleteWindow (graphic::IWindow2 *)=0
 
virtual graphic::IWindow2window ()=0
 La fenetre ouverte de ce vendor, nullptr s'il n'y en a pas.
 
virtual graphic::IKeyboardcreateKeyboard (graphic::IWindow *window)=0
 
virtual void deleteKeyboard (graphic::IKeyboard *keyboard)=0
 
virtual graphic::IMousecreateMouse (graphic::IWindow *window)=0
 
virtual void deleteMouse (graphic::IMouse *mouse)=0
 
virtual graphic::IGamepadcreateGamepad (graphic::IWindow *window)=0
 
virtual void deleteGamepad (graphic::IGamepad *gamepad)=0
 
virtual graphic::ITexturecreateTexture (std::string path)=0
 
virtual void deleteTexture (graphic::ITexture *texture)=0
 
virtual graphic::IFontcreateFont (std::string path)=0
 
virtual void deleteFont (graphic::IFont *font)=0
 
virtual graphic::IPolygoncreatePolygon (std::vector< Vector2f > points)=0
 
virtual void deletePolygon (graphic::IPolygon *polygon)=0
 
virtual graphic::ISpritecreateSprite (graphic::ITexture *texture)=0
 
virtual void deleteSprite (graphic::ISprite *sprite)=0
 
virtual graphic::ITextcreateText (std::string text, graphic::IFont *font)=0
 
virtual void deleteText (graphic::IText *text)=0
 

Static Public Attributes

static constexpr const char * entry = "getGraphic3Module"
 Symbol the loader looks up : present = this vendor can draw 3D.
 
static constexpr const char * contract = "graphic3"
 
static constexpr const char * accepts [] = {"graphic3", nullptr}
 Rien d'autre ne fait de la 3D : je ne m'accepte que moi.
 
- Static Public Attributes inherited from IGraphic2Module
static constexpr const char * entry = "getGraphic2Module"
 Symbol the loader looks up : present = this vendor can draw 2D.
 
static constexpr const char * contract = "graphic2"
 
static constexpr const char * accepts [] = {"graphic2", "graphic3", nullptr}
 Les contrats qui me satisfont, du plus general au plus precis.
 

Detailed Description

A vendor's 3D factory. Extends IGraphic2Module : implementing it means implementing all of the 2D too, and the window it returns is an IWindow3, hence usable as an IWindow2.

A vendor without 3D DOES NOT EXPORT this symbol, rather than returning empty objects : the missing symbol is the only way the loader learns the capability is absent.

Constructor & Destructor Documentation

◆ ~IGraphic3Module()

virtual IGraphic3Module::~IGraphic3Module ( )
virtualdefault

Member Function Documentation

◆ createAnimationSet()

virtual graphic::IAnimationSet * IGraphic3Module::createAnimationSet ( std::string  path)
pure virtual

◆ createCamera()

virtual graphic::ICamera * IGraphic3Module::createCamera ( Vector3f  position,
Vector3f  target,
float  fov 
)
pure virtual

◆ createMesh()

virtual graphic::IMesh * IGraphic3Module::createMesh ( std::string  path)
pure virtual

◆ createModel()

virtual graphic::IModel * IGraphic3Module::createModel ( graphic::IMesh mesh)
pure virtual

◆ createWindow()

virtual graphic::IWindow3 * IGraphic3Module::createWindow ( int32_t  screenWidth,
int32_t  screenHeight,
std::string  title 
)
pure virtual

Implements IGraphic2Module.

◆ deleteAnimationSet()

virtual void IGraphic3Module::deleteAnimationSet ( graphic::IAnimationSet animations)
pure virtual

◆ deleteCamera()

virtual void IGraphic3Module::deleteCamera ( graphic::ICamera )
pure virtual

◆ deleteMesh()

virtual void IGraphic3Module::deleteMesh ( graphic::IMesh mesh)
pure virtual

◆ deleteModel()

virtual void IGraphic3Module::deleteModel ( graphic::IModel model)
pure virtual

Member Data Documentation

◆ accepts

constexpr const char* IGraphic3Module::accepts[] = {"graphic3", nullptr}
staticconstexpr

Rien d'autre ne fait de la 3D : je ne m'accepte que moi.

◆ contract

constexpr const char* IGraphic3Module::contract = "graphic3"
staticconstexpr

Le contrat le PLUS PRECIS que ce module remplit. Un IGraphic3Module EST un IGraphic2Module, mais type() n'en rend qu'un seul : c'est a l'appelant de savoir que chercher de la 2D veut dire regarder les deux lignes. La table, elle, ignore la chaine d'heritage.

◆ entry

constexpr const char* IGraphic3Module::entry = "getGraphic3Module"
staticconstexpr

Symbol the loader looks up : present = this vendor can draw 3D.


The documentation for this class was generated from the following file: