-#define crazy_draw(tex) \
- for (int _i = 0; ({ \
- if (_i == 0) { \
- /* Clear alpha buffer */ \
- glBindTexture(GL_TEXTURE_2D, tex); \
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); \
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); \
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); \
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); \
- glBlendFuncSeparate(GL_ZERO, GL_ONE, GL_ONE, GL_ZERO); \
- } else if (_i == 1) { \
- /* Draw pixels */ \
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); \
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); \
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); \
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); \
- glBlendFuncSeparate(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_ZERO, GL_ZERO); \
- } else { \
- glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); \
- } \
- }), _i < 2; _i++)
-
-guint tex, texl, texr;