mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-22 23:58:10 +02:00
105 lines
1.9 KiB
C++
105 lines
1.9 KiB
C++
/*
|
|
* Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
|
|
* Copyright 2000-2015 Haiku, Inc. All Rights Reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*
|
|
* Authors:
|
|
* Brian Paul <brian.e.paul@gmail.com>
|
|
* Philippe Houdoin <philippe.houdoin@free.fr>
|
|
*/
|
|
#ifndef GLDISPATCHER_H
|
|
#define GLDISPATCHER_H
|
|
|
|
|
|
#include <BeBuild.h>
|
|
#include <GL/gl.h>
|
|
#include <SupportDefs.h>
|
|
|
|
#include "main/glheader.h"
|
|
|
|
#include "glapi/glapi.h"
|
|
|
|
|
|
class BGLDispatcher
|
|
{
|
|
// Private unimplemented copy constructors
|
|
BGLDispatcher(const BGLDispatcher &);
|
|
BGLDispatcher & operator=(const BGLDispatcher &);
|
|
|
|
public:
|
|
BGLDispatcher();
|
|
~BGLDispatcher();
|
|
|
|
void SetCurrentContext(void* context);
|
|
void* CurrentContext();
|
|
|
|
struct _glapi_table* Table();
|
|
status_t SetTable(struct _glapi_table* dispatch);
|
|
uint32 TableSize();
|
|
|
|
const _glapi_proc operator[](const char* functionName);
|
|
const char* operator[](uint32 offset);
|
|
|
|
const _glapi_proc AddressOf(const char* functionName);
|
|
uint32 OffsetOf(const char* functionName);
|
|
};
|
|
|
|
|
|
// Inlines methods
|
|
inline void
|
|
BGLDispatcher::SetCurrentContext(void* context)
|
|
{
|
|
_glapi_set_context(context);
|
|
}
|
|
|
|
|
|
inline void*
|
|
BGLDispatcher::CurrentContext()
|
|
{
|
|
return _glapi_get_context();
|
|
}
|
|
|
|
|
|
inline struct _glapi_table*
|
|
BGLDispatcher::Table()
|
|
{
|
|
return _glapi_get_dispatch();
|
|
}
|
|
|
|
|
|
inline uint32
|
|
BGLDispatcher::TableSize()
|
|
{
|
|
return _glapi_get_dispatch_table_size();
|
|
}
|
|
|
|
|
|
inline const _glapi_proc
|
|
BGLDispatcher::operator[](const char* functionName)
|
|
{
|
|
return _glapi_get_proc_address(functionName);
|
|
}
|
|
|
|
|
|
inline const char*
|
|
BGLDispatcher::operator[](uint32 offset)
|
|
{
|
|
return _glapi_get_proc_name((GLuint) offset);
|
|
}
|
|
|
|
|
|
inline const _glapi_proc
|
|
BGLDispatcher::AddressOf(const char* functionName)
|
|
{
|
|
return _glapi_get_proc_address(functionName);
|
|
}
|
|
|
|
|
|
inline uint32
|
|
BGLDispatcher::OffsetOf(const char* functionName)
|
|
{
|
|
return (uint32) _glapi_get_proc_offset(functionName);
|
|
}
|
|
|
|
|
|
#endif // GLDISPATCHER_H
|