Example #1
0
void render()
{
    // Clear
    oRenderer->clear(OColorHex(1d232d));

    // Draw stuff to our render target
    oRenderer->renderStates.renderTarget.push(pRenderTarget);
    oRenderer->renderStates.viewport.push({0, 0, pRenderTarget->getSize().x, pRenderTarget->getSize().y});
    oSpriteBatch->begin();
    oSpriteBatch->drawRect(pTextureFromFile, {0, 0, 128, 128});
    oSpriteBatch->drawRect(pTextureFromFile, {128, 0, 128, 128});
    oSpriteBatch->drawRect(pTextureFromFile, {0, 128, 128, 128});
    oSpriteBatch->drawRect(pTextureFromFile, {128, 128, 128, 128});
    oSpriteBatch->end();
    oRenderer->renderStates.viewport.pop();
    oRenderer->renderStates.renderTarget.pop();

    // Update our dynamic texture
    auto animValue = dynamicAnim.get();
    for (auto j = 0; j < 128; ++j)
    {
        for (auto i = 0; i < 128; ++i)
        {
            auto k = (j * 128 + i) * 4;
            dynamicData[k + 0] = j * 2 - animValue;
            dynamicData[k + 1] = j * 2 + animValue;
            dynamicData[k + 2] = j * 2;
            dynamicData[k + 3] = 255;
        }
    }
    pDynamic->setData(dynamicData);

    // Draw out resulted textures
    auto pFont = OGetFont("font.fnt");
    oSpriteBatch->begin(Matrix::CreateTranslation(80, 212, 0));
    oSpriteBatch->changeFiltering(OFilterNearest);

    oSpriteBatch->drawRect(pTextureFromFile, {0, 0, 128, 128});
    oSpriteBatch->drawRect(pTextureFromFileData, {128, 0, 128, 128});
    oSpriteBatch->drawRect(pTextureFromData, {256, 0, 128, 128});
    oSpriteBatch->drawRect(pRenderTarget, {384, 0, 128, 128});
    oSpriteBatch->drawRect(pDynamic, {512, 0, 128, 128});
    
    pFont->draw("From File", {64, 140}, OCenter);
    pFont->draw("From File Data", {64 + 128, 140}, OCenter);
    pFont->draw("From Data", {64 + 256, 140}, OCenter);
    pFont->draw("Render Target", {64 + 384, 140}, OCenter);
    pFont->draw("Dynamic", {64 + 512, 140}, OCenter);
    
    oSpriteBatch->end();
}
Example #2
0
void render()
{
    // Clear
    oRenderer->clear(OColorHex(0));

    oSpriteBatch->begin();
    oSpriteBatch->drawRect(pVideoTexture, ORectFit(ORectFullScreen, pVideoTexture->getSize()));
    oSpriteBatch->end();
}