/src/BPMDisplay.cpp
#include "BPMDisplay.h"
#include "ShaderDepot.h"
BPMDisplay::BPMDisplay() {
this->BPMtex = new Texture("img/bpm.png");
this->setSize(BPMtex->getWidth(), BPMtex->getHeight());
labelVertices[0] = 0;
labelVertices[1] = 0;
labelVertices[2] = 38;
labelVertices[3] = 0;
labelVertices[4] = 38;
labelVertices[5] = 14;
labelVertices[6] = 0;
labelVertices[7] = 14;
numberVertices[0] = 0;
numberVertices[1] = 0;
numberVertices[2] = 10;
numberVertices[3] = 0;
numberVertices[4] = 10;
numberVertices[5] = 14;
numberVertices[6] = 0;
numberVertices[7] = 14;
this->shader = (DecalShader*) loadShader("DecalShader");
}
BPMDisplay::~BPMDisplay() {
}
void BPMDisplay::draw(int t, int bpm) {
shader->useProgram();
shader->setTexture(BPMtex);
shader->setTranslation(this->x, this->y);
shader->setPositions(4, this->labelVertices);
shader->setTextureOffset(0, 0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
int digit;
shader->setPositions(4, this->numberVertices);
digit = (bpm / 100) % 10;
shader->setTranslation(this->x + 45, this->y);
shader->setTextureOffset(40 + 10 * digit, 0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
digit = (bpm / 10) % 10;
shader->setTranslation(this->x + 57, this->y);
shader->setTextureOffset(40 + 10 * digit, 0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
digit = bpm % 10;
shader->setTranslation(this->x + 69, this->y);
shader->setTextureOffset(40 + 10 * digit, 0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
}