projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
clear color works
[demo]
/
src
/
renderer.h
diff --git
a/src/renderer.h
b/src/renderer.h
index
7c32c50
..
23471f5
100644
(file)
--- a/
src/renderer.h
+++ b/
src/renderer.h
@@
-1,34
+1,48
@@
#ifndef RENDERER_H_
#define RENDERER_H_
#ifndef RENDERER_H_
#define RENDERER_H_
-/*
- this might change:
- atm we are going to have 1 renderer per scene and 1 shader program
- for the scene
- */
-
-
-class Camera;
+class OrbitCamera;
class Object;
class Scene;
class ShaderProgram;
class Object;
class Scene;
class ShaderProgram;
+class Texture;
class Renderer {
protected:
class Renderer {
protected:
+ int diff_loc;
+ int spec_loc;
+ int shin_loc;
+ int mmviewproj_loc;
+ int mview_loc;
+ int mmod_loc;
+ int fog_loc;
+ int dstex_loc;
+ int stex_loc;
+
ShaderProgram *sprog;
ShaderProgram *sprog;
- virtual void draw_object(Object *object) const = 0;
+
+ /* debug shader to draw normals */
+ ShaderProgram *nprog;
+
+ Texture *skytex, *dskytex;
+
+ virtual void draw_object(Object *object) const;
+ virtual void draw_skybox() const;
public:
public:
+ float fog_density;
+
Scene *scene;
Scene *scene;
- Camera *camera;
+ OrbitCamera *camera;
Renderer();
Renderer();
- Renderer(ShaderProgram *sprog, Scene *scene, Camera *camera);
virtual ~Renderer();
virtual ~Renderer();
- virtual void set_program(ShaderProgram *sprog);
- virtual bool create() = 0;
- virtual void draw() const = 0;
+ virtual bool create();
+ virtual void draw() const;
+
+ virtual void set_sky_tex(Texture *stex);
+ virtual void set_diffuse_sky_tex(Texture *dstex);
};
#endif // RENDERER_H_
\ No newline at end of file
};
#endif // RENDERER_H_
\ No newline at end of file