blob: 5c8da27119846d84965abc7e2b06b626583eaebd [file] [log] [blame]
Alexander von Gluck IVc9f12172013-10-01 21:03:48 +00001/*
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 */