예제 #1
0
void SDLGraphicsSystem::fillScreenArea(const Rect& rect,
                                       const RGBAColour& colour) {
  if (colour.a()) {
    glDisable(GL_TEXTURE_2D);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    glBegin(GL_QUADS); {
      glColorRGBA(colour);
      glVertex2f(rect.x(), rect.y());
      glVertex2f(rect.x(), rect.y() + rect.height());
      glVertex2f(rect.x() + rect.width(), rect.y() + rect.height());
      glVertex2f(rect.x() + rect.width(), rect.y());
    }
    glEnd();

    glEnable(GL_TEXTURE_2D);
    glBlendFunc(GL_ONE, GL_ZERO);
  }
}
예제 #2
0
void glColorRGBA(const RGBAColour& rgba) {
    glColor4ub(rgba.r(), rgba.g(), rgba.b(), rgba.a());
}
예제 #3
0
Uint32 MapRGBA(SDL_PixelFormat *fmt, const RGBAColour& in) {
  return SDL_MapRGBA(fmt, in.r(), in.g(), in.b(), in.a());
}