| 48 | |
| 49 | |
| 50 | void initialize() |
| 51 | { |
| 52 | // Initialize OpenGL objects |
| 53 | g_defaultPointSizeState = new globjects::State(); |
| 54 | g_defaultPointSizeState->ref(); |
| 55 | g_defaultPointSizeState->pointSize(globjects::getFloat(GL_POINT_SIZE)); |
| 56 | g_thinnestPointSizeState = new globjects::State(); |
| 57 | g_thinnestPointSizeState->ref(); |
| 58 | g_thinnestPointSizeState->pointSize(2.0f); |
| 59 | g_thinPointSizeState = new globjects::State(); |
| 60 | g_thinPointSizeState->ref(); |
| 61 | g_thinPointSizeState->pointSize(5.0f); |
| 62 | g_normalPointSizeState = new globjects::State(); |
| 63 | g_normalPointSizeState->ref(); |
| 64 | g_normalPointSizeState->pointSize(10.0f); |
| 65 | g_thickPointSizeState = new globjects::State(); |
| 66 | g_thickPointSizeState->ref(); |
| 67 | g_thickPointSizeState->pointSize(20.0f); |
| 68 | g_disableRasterizerState = new globjects::State(); |
| 69 | g_disableRasterizerState->ref(); |
| 70 | g_disableRasterizerState->enable(GL_RASTERIZER_DISCARD); |
| 71 | g_enableRasterizerState = new globjects::State(); |
| 72 | g_enableRasterizerState->ref(); |
| 73 | g_enableRasterizerState->disable(GL_RASTERIZER_DISCARD); |
| 74 | |
| 75 | g_vao = new globjects::VertexArray(); |
| 76 | g_vao->ref(); |
| 77 | g_buffer = new globjects::Buffer(); |
| 78 | g_buffer->ref(); |
| 79 | |
| 80 | g_shaderProgram = new globjects::Program(); |
| 81 | g_shaderProgram->ref(); |
| 82 | |
| 83 | const auto dataPath = common::retrieveDataPath("globjects", "dataPath"); |
| 84 | g_shaderProgram->attach( |
| 85 | globjects::Shader::fromFile(GL_VERTEX_SHADER, dataPath + "states/standard.vert") |
| 86 | , globjects::Shader::fromFile(GL_FRAGMENT_SHADER, dataPath + "states/standard.frag")); |
| 87 | |
| 88 | static auto data = std::vector<glm::vec2>(); |
| 89 | if (data.empty()) |
| 90 | { |
| 91 | for (auto y = 0.8f; y > -1.f; y -= 0.2f) |
| 92 | for (auto x = -0.8f; x < 1.f; x += 0.4f) |
| 93 | data.push_back(glm::vec2(x, y)); |
| 94 | } |
| 95 | g_buffer->setData(data, GL_STATIC_DRAW ); |
| 96 | |
| 97 | g_vao->binding(0)->setAttribute(0); |
| 98 | g_vao->binding(0)->setBuffer(g_buffer, 0, sizeof(glm::vec2)); |
| 99 | g_vao->binding(0)->setFormat(2, GL_FLOAT); |
| 100 | g_vao->enable(0); |
| 101 | } |
| 102 | |
| 103 | void deinitialize() |
| 104 | { |
no test coverage detected