summaryrefslogtreecommitdiff
path: root/macosx/osx_gl.cpp
blob: 84911819dc6dc386659e8e024c042c91b6bc080a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <mach-o/dyld.h>
#include <stdlib.h>
#include <string.h>

bool Sys_GLOpenLibrary(const char* LibName)
{
	return true;
}

void Sys_GLCloseLibrary()
{
}

void* Sys_GLGetProc(const char* ProcName)
{
	NSSymbol Symbol = NULL;
	char* SymbolName;

	// Prepend a '_' for the Unix C symbol mangling convention.
	SymbolName = (char*)malloc(strlen(ProcName) + 2);
	strcpy(SymbolName + 1, ProcName);
	SymbolName[0] = '_';

	if (NSIsSymbolNameDefined(SymbolName))
		Symbol = NSLookupAndBindSymbol(SymbolName);
	free(SymbolName);

	return Symbol ? NSAddressOfSymbol(Symbol) : NULL;
}

void* Sys_GLGetExtension(const char* ProcName)
{
	return Sys_GLGetProc(ProcName);
}