X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fobject.h;h=c8e372601077c1b1e9c43dd82a221b53b1a904a7;hp=192cf069bd8f4c8bf1b8a9ca801f5682e7fe4876;hb=42c1534d95e1551c37e64a1dae288e8b75e8d8ba;hpb=fc0f53b1981436d39a27884376e852dca5671fda diff --git a/source/object.h b/source/object.h index 192cf069..c8e37260 100644 --- a/source/object.h +++ b/source/object.h @@ -5,7 +5,7 @@ #include "bindable.h" #include "renderable.h" #include "renderpass.h" -#include "resourcewatcher.h" +#include "resourceobserver.h" namespace Msp { namespace GL { @@ -28,7 +28,7 @@ Objects can have multiple levels of detail. The most detailed level has index 0, with increasing indices having less detail. When rendering an instance, the instance's get_level_of_detail method is called to determine which LoD to use. */ -class Object: public Renderable, private ResourceWatcher +class Object: public Renderable, private ResourceObserver { private: struct LevelOfDetail; @@ -59,6 +59,7 @@ public: void init(); virtual void finish(); + void bounding_sphere_hint(float, float, float, float); void level_of_detail(unsigned); }; @@ -71,6 +72,7 @@ private: std::vector lods; Geometry::BoundingSphere bounding_sphere; + bool lod0_watched; public: Object(); @@ -105,8 +107,6 @@ public: virtual const Geometry::BoundingSphere *get_bounding_sphere() const { return &bounding_sphere; } - virtual void render(const Tag &tag = Tag()) const; - virtual void render(Renderer &, const Tag & = Tag()) const; /** Renders an instance of the object. The instance's hook functions are @@ -121,6 +121,7 @@ private: const RenderPass *get_pass(const Tag &, unsigned) const; virtual void resource_loaded(Resource &); + virtual void resource_removed(Resource &); }; } // namespace GL