73 "Attempt to access OpenGL prior to context creation");
114 _TRACE(
"Error - valid OpenGL version not detected.");
132 const char *v = (
const char*)glGetString(GL_VERSION);
137 "Attempt to access OpenGL prior to context creation");
146 bool version_two =
false;
149 int major_version = 0;
150 if (
arr.size() >= 1) {
153 if (major_version > 1) {
195 if (drawMode == GL_LINES)
245 vector<CIRef<IRender> >::iterator iter;
247 if ((*iter)->GetApi() == rm->GetApi()) {
258 vector<CIRef<IRender> >::iterator iter;
271 vector<CIRef<IRender> >::iterator iter;
274 if ((**iter).GetApi() == target)
283 vector<CIRef<IRender> >::iterator iter;
static vector< string > arr
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
static CGlResMgr & Instance()
~CGlResMgr()
Destroys all gl objects it created.
CIRef< IRender > GetRenderer(ERenderTarget target)
Returns first renderer in m_Renderers that renders to 'target'.
IVboGeom * CreateFillerPointVboGeom(IVboGeom *edgeGeom)
void Clear()
Deletes all objects.
std::vector< CIRef< IRender > > m_Renderers
void ClearRenderers()
Clear all current rendering objects.
void AddRenderer(CIRef< IRender > rm)
Get/Set Renderer.
CIRef< IRender > RemoveRenderer(CIRef< IRender > rm)
ERenderTarget
Different api levels based on information from OpenGL driver.
static bool Initialized()
return true if static instance has been created (via a call to Instance()
static CGlResMgr * m_StaticInstance
I3DFrameBuffer * CreateFrameBuffer(size_t dim)
void SetApiLevel()
Find GL object (add type option?) TBD.
void SetCurrentRenderer(CIRef< IRender > rm)
Set current renderer (rm must already be in m_Renderers)
IVboGeom * CreateTreeNodeVboGeom(size_t numSegments)
I3DTexture * Create1DRGBATexture(size_t width, float *data)
IVboGeom * CreateVboGeom(GLenum drawMode, const string &name)
Get geometry object for a node that renders using vertex buffers.
IVboGeom * CreateNarrowTreeEdgeVboGeom(IVboGeom *edgeGeom)
void Load1DRGBA(size_t width, float *data)
CIRef< IRender > m_CurrentRenderer
CGlResMgr()
Needs active OpenGL context when created. Determines best api level.
I3DTexture * CreateTexture(CNcbiIstream &istr, const string &tag)
TObjectType * ReleaseOrNull(void)
Release a reference to the object and return a pointer to the object.
void Reset(void)
Reset reference object.
TObjectType * Release(void)
Release a reference to the object and return a pointer to the object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
Front end for a platform-specific configuration summary.