| /* |
| * 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 */ |