gles.function_name = reinterpret_cast<return_type(*) signature>( \
gles.lib_.GetSymbol(#function_name)); \
if (gles.function_name == nullptr) { \
gles.function_name = reinterpret_cast<return_type(*) signature>( \
gles.lib_.GetSymbol(#function_name)); \
} \
if (gles.function_name == nullptr) { \
gles.function_name = reinterpret_cast<return_type(*) signature>( \
gles.lib_.GetSymbol(#function_name "OES")); \
} \
if (gles.function_name == nullptr) { \
gles.function_name = reinterpret_cast<return_type(*) signature>( \
gles.lib_.GetSymbol(#function_name "EXT")); \
} \
if (gles.function_name == nullptr) { \
gles.function_name = reinterpret_cast<return_type(*) signature>( \
gles.lib_.GetSymbol(#function_name "ARB")); \
}