Simple game engine with complete export to scripting language
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

61 linhas
1.2 KiB

#ifndef BLUECORE_RENDERDEVICE_H
#define BLUECORE_RENDERDEVICE_H
#include "RenderWindow.h"
#include "Camera.h"
#include "Material.h"
#include "Utilities/Buffer.h"
#include "Utilities/Referenced.h"
#include "Utilities/sigslot.h"
namespace BlueCore
{
class RenderDevice : public Referenced, public sigslot::has_slots<>
{
private:
int _ViewportWidth, _ViewportHeight;
void WindowResizeSlot(int width, int height);
void WindowCloseSlot();
ref_ptr<RenderWindow> _RenderWindow;
ref_ptr<Camera> _Camera;
unsigned int _ActiveTextures;
public:
RenderDevice(RenderWindow* renderWindow);
~RenderDevice();
int getViewportWidth();
int getViewportHeight();
void begin2D();
void end2D();
void begin3D(Camera *);
void end3D();
void clear();
void swap();
void setAmbientLight(float r, float g, float b);
void setMaterial(Material *);
void setTexture(unsigned int unit, Texture* texture, bool last = false);
void pushTransformation (const Vector3&, const Quaternion&);
void popTransformation ();
void setupProjectionMatrix();
void setupViewMatrix();
sigslot::signal0<> DeviceShutdownSignal;
//Buffer<ShadowFace> &_ShadowFaces;
};
} // namespaced BlueCore
#endif // BLUECORE_RENDERDEVICE_H