Одна возможность - использовать макрос для замены существующих вызовов glBindTexture:
#define glBindTexture(target, texture) myGlBindTexture(target, texture)
Затем в своем коде, где вы хотите защитить себя от использования макроса, вы заключаете имя в скобки:
(glBindTexture)(someTarget, someTexture);
Функциональный макрос можно заменить только тогда, когда за именем сразу следует открывающая скобка, поэтому это предотвращает расширение макроса.
Поскольку это макрос, он влияет только на исходный код, скомпилированный с видимым макросом, но не на существующую DLL, статическую библиотеку и т. Д.