1/* 2 * Copyright 2006-2012, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Philippe Houdoin <philippe.houdoin@free.fr> 7 */ 8#ifndef _GLRENDERER_ROSTER_H 9#define _GLRENDERER_ROSTER_H 10 11 12#include <GLRenderer.h> 13 14#include <map> 15 16 17struct renderer_item { 18 BGLRenderer* renderer; 19 entry_ref ref; 20 ino_t node; 21 image_id image; 22}; 23 24typedef std::map<renderer_id, renderer_item> RendererMap; 25 26 27class GLRendererRoster { 28 public: 29 GLRendererRoster(BGLView* view, ulong options); 30 virtual ~GLRendererRoster(); 31 32 BGLRenderer* GetRenderer(int32 id = 0); 33 34 private: 35 void AddDefaultPaths(); 36 status_t AddPath(const char* path); 37 status_t AddRenderer(BGLRenderer* renderer, 38 image_id image, const entry_ref* ref, ino_t node); 39 status_t CreateRenderer(const entry_ref& ref); 40 41 RendererMap fRenderers; 42 int32 fNextID; 43 BGLView* fView; 44 ulong fOptions; 45 bool fSafeMode; 46 const char* fABISubDirectory; 47 48}; 49 50 51#endif /* _GLRENDERER_ROSTER_H */ 52