MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / drawRgb

Method drawRgb

framework/render/gl20/ogl_2_0_renderer.cpp:943–972  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

941 this->currentBoundProgram = p->prog;
942 }
943 void drawRgb(GLRGBImage &img, Vec2<float> offset, Vec2<float> size, Scaler scaler,
944 Vec2<float> rotationCenter = {0, 0}, float rotationAngleRadians = 0,
945 Colour tint = {255, 255, 255, 255})
946 {
947 GLenum filter;
948 Rect<float> pos(offset, offset + size);
949 switch (scaler)
950 {
951 case Scaler::Linear:
952 filter = gl20::LINEAR;
953 break;
954 case Scaler::Nearest:
955 filter = gl20::NEAREST;
956 break;
957 default:
958 LogError("Unknown scaler requested");
959 filter = gl20::NEAREST;
960 break;
961 }
962 bindProgram(rgbProgram);
963 bool flipY = false;
964 if (currentBoundFBO == 0)
965 flipY = true;
966 rgbProgram->setUniforms(this->currentSurface->size, flipY, tint);
967 BindTexture t(img.texID);
968 TexParam<gl20::TEXTURE_MAG_FILTER> mag(img.texID, filter);
969 TexParam<gl20::TEXTURE_MIN_FILTER> min(img.texID, filter);
970 Quad q(pos, Rect<float>{{0, 0}, {1, 1}}, rotationCenter, rotationAngleRadians);
971 q.draw(rgbProgram->posLoc, rgbProgram->texcoordLoc);
972 }
973 void drawPalette(GLPaletteImage &img, Vec2<float> offset, Vec2<float> size,
974 Colour tint = {255, 255, 255, 255})
975 {

Callers 2

drawRotatedMethod · 0.95
drawScaledImageMethod · 0.95

Calls 2

setUniformsMethod · 0.45
drawMethod · 0.45

Tested by

no test coverage detected