❄️🎁⛄ The Winter Games Tournament is Live! 🎄🎅❄️
Jump to content

Recommended Posts

Posted

If you want to render at a low resolution to a higher resolution window, this can be done with the following example. (If you are using a fullscreen window, there is no need for this, since it will change the display resolution to match the window.)

#include "Leadwerks.h"

using namespace Leadwerks;

int main(int argc, const char* argv[])
{
    //Get the displays
    auto displays = GetDisplays();

    //Create a window
    auto window = CreateWindow("Leadwerks", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);

    //Create a world
    auto world = CreateWorld();

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetClearColor(0.125);
    camera->SetPosition(0, 0, -2);

    // Render to texture
    auto texbuffer = CreateTextureBuffer(framebuffer->size.x / 4, framebuffer->size.y / 4);
    camera->SetRenderTarget(texbuffer);

    // Create a second camera
    auto orthocam = CreateCamera(world);
    orthocam->SetLighting(false);// Disable sending lighting data
	orthocam->SetRenderLayers(0);
  
    // Create a rectangle to go onscreen
    auto screen = CreateTile(orthocam, framebuffer->size.x, framebuffer->size.y);
    auto mtl = CreateMaterial();

    // Create a material and apply the render texture to it
    mtl->SetShaderFamily(LoadShaderFamily("Shaders/Unlit.fam"));
    auto tex = texbuffer->GetColorAttachment();
    tex->SetFilter(TEXTUREFILTER_LINEAR);// enables linear sampling, looks softer
    mtl->SetTexture(tex);
    screen->SetMaterial(mtl);

    //Create a light
    auto light = CreateBoxLight(world);
    light->SetRotation(45, 35, 0);
    light->SetRange(-10, 10);
    light->SetColor(2);

    //Create a model
    auto model = CreateBox(world);
    model->SetColor(0, 0, 1);

    //Main loop
    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        model->Turn(0, 1, 0);
        world->Update();
        world->Render(framebuffer);
    }
    return 0;
}

 

  • Thanks 1

Let's build cool stuff and have fun. :)

Posted

And here is the Lua version:

--Get the displays
displays = GetDisplays()

--Create a window
window = CreateWindow("Leadwerks", 0, 0, 1280, 720, displays[1], WINDOW_CENTER | WINDOW_TITLEBAR)

--Create a world
world = CreateWorld()

--Create a framebuffer
framebuffer = CreateFramebuffer(window)

--Create a camera
camera = CreateCamera(world)
camera:SetClearColor(0.125)
camera:SetPosition(0, 0, -2)

-- Render to texture
texbuffer = CreateTextureBuffer(framebuffer.size.x / 4, framebuffer.size.y / 4)
camera:SetRenderTarget(texbuffer)

-- Create a second camera
orthocam = CreateCamera(world)
orthocam:SetRenderLayers(0)
--orthocam->SetLighting(false)-- Disable sending lighting data

-- Create a rectangle to go onscreen
screen = CreateTile(orthocam, framebuffer.size.x, framebuffer.size.y);
mtl = CreateMaterial();

-- Create a material and apply the render texture to it
mtl:SetShaderFamily(LoadShaderFamily("Shaders/Unlit.fam"))
tex = texbuffer:GetColorAttachment()
mtl:SetTexture(tex)
screen:SetMaterial(mtl)

--Create a light
light = CreateBoxLight(world)
light:SetRotation(45, 35, 0)
light:SetRange(-10, 10)
light:SetColor(2)

--Create a model
model = CreateBox(world)
model:SetColor(0, 0, 1)

--Main loop
while window:Closed() == false and window:KeyDown(KEY_ESCAPE) == false do

	model:Turn(0, 1, 0)
	world:Update()
	world:Render(framebuffer)

end

 

  • Thanks 2

Let's build cool stuff and have fun. :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...