Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
UppHub
Status & Roadmap
FAQ
Authors & License
Forums
Funding U++
Search on this site











SourceForge.net Logo

SourceForge.net Logo

GitHub Logo

Discord Logo

SetSurface

 

Setting RGBA pixels from the buffer to window

 

 

main.cpp

 

#include <CtrlLib/CtrlLib.h>

 

using namespace Upp;

 

struct MyApp : TopWindow {

    RGBA pixels[65536];

 

    virtual void Paint(Draw& w) {

        w.DrawRect(GetSize(), LtGray());

        SetSurface(w, 0, 0, 256, 256, pixels);

        SetSurface(w, RectC(300, 128, 128, 128), pixels, Size(256, 256), Point(0, 0));

        SetSurface(w, RectC(300, 0, 128, 64), pixels, Size(256, 256), Point(128, 128));

    }

 

    MyApp() {

        RGBA *t = pixels;

        for(int x = 0; x < 256; x++)

            for(int y = 0; y < 256; y++) {

                int d = (x - 128) * (x - 128) + (y - 128) * (y - 128);

                RGBA c = Black();

                if(d > 120 * 120)

                    c = White();

                if(d < 120 * 120)

                    c.r = 255 - min(255 * d / (120 * 120), 255);

                *t++ = c;

            }

    }

};

 

GUI_APP_MAIN

{

    MyApp().Run();

}

 

 

 

 

Do you want to contribute?