| 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 | { |
no test coverage detected