--- /dev/null
+/*
+ * Copyright 2006-2012, Haiku, Inc. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ * Philippe Houdoin <philippe.houdoin@free.fr>
+ */
+#ifndef _GLRENDERER_ROSTER_H
+#define _GLRENDERER_ROSTER_H
+
+
+#include <GLRenderer.h>
+
+#include <map>
+
+
+struct renderer_item {
+ BGLRenderer* renderer;
+ entry_ref ref;
+ ino_t node;
+ image_id image;
+};
+
+typedef std::map<renderer_id, renderer_item> RendererMap;
+
+
+class GLRendererRoster {
+ public:
+ GLRendererRoster(BGLView* view, ulong options);
+ virtual ~GLRendererRoster();
+
+ BGLRenderer* GetRenderer(int32 id = 0);
+
+ private:
+ void AddDefaultPaths();
+ status_t AddPath(const char* path);
+ status_t AddRenderer(BGLRenderer* renderer,
+ image_id image, const entry_ref* ref, ino_t node);
+ status_t CreateRenderer(const entry_ref& ref);
+
+ RendererMap fRenderers;
+ int32 fNextID;
+ BGLView* fView;
+ ulong fOptions;
+ bool fSafeMode;
+ const char* fABISubDirectory;
+
+};
+
+
+#endif /* _GLRENDERER_ROSTER_H */