でも、ドライバは、GL_OES_matrix_palette をサポートしているとでてたので、ハードをたたくドライバ libhgl.so を使って、拡張APIのシンボルをロードしてみました。
////////////////////////////////////////////////////////////////////
// Load OES symbol
////////////////////////////////////////////////////////////////////
#include
struct dso_symbol
{
char *symbol;
void *api;
};
static struct dso_symbol symbol_table[] =
{
{ "glCurrentPaletteMatrixOES", NULL },
{ "glLoadPaletteFromModelViewMatrixOES", NULL },
{ "glMatrixIndexPointerOES", NULL },
{ "glWeightPointerOES", NULL },
};
void LoadDsoSymbol()
{
int i;
int symbol_num = sizeof(symbol_table)/sizeof(symbol_table[0]);
void *dso = dlopen( "/system/lib/libhgl.so", RTLD_NOW | RTLD_LOCAL );
if( dso )
{
LOGI( "SUCCESS : Load libhgl.so" );
for( i = 0 ; i < symbol_num ; ++i )
{
symbol_table[i].api = dlsym( dso, symbol_table[i].symbol );
if( symbol_table[i].api )
{
LOGI( "SUCCESS : Load %s", symbol_table[i].symbol );
}
else
{
LOGI( "ERROR : Load %s", symbol_table[i].symbol );
}
}
dlclose( dso );
}
else
{
LOGI( "ERROR : Load libhgl.so" );
}
}
その結果、、、、
I/Game1 ( 1302): SUCCESS : Load libhgl.so
I/Game1 ( 1302): SUCCESS : Load glCurrentPaletteMatrixOES
I/Game1 ( 1302): SUCCESS : Load glLoadPaletteFromModelViewMatrixOES
I/Game1 ( 1302): SUCCESS : Load glMatrixIndexPointerOES
I/Game1 ( 1302): SUCCESS : Load glWeightPointerOES
やっぱりシンボルはロードできました。動かしてないけど、たぶん動くでしょう。
0 件のコメント:
コメントを投稿