← index
libmx2/libmx/test/main.cpp
Source: libmx2/libmx/test/main.cpp
#include"mx.hpp"



class Intro : public obj::Object {
public:
    Intro() = default;
    ~Intro() override { 
    
    }

    virtual void load(mx::mxWindow *win) override {

    }

    virtual void draw(mx::mxWindow *win) override {
        for(int i = 0; i < win->width; i += 32) {
            for(int z = 0; z < win->height; z += 32) {
                SDL_Rect rc = {i, z, 32, 32};
                SDL_SetRenderDrawColor(win->renderer, rand()%255, rand()%255, rand()%255, 255);
                SDL_RenderFillRect(win->renderer, &rc);
            }
        }
    }

    virtual void event(mx::mxWindow *win, SDL_Event &e) override  {

    }
};


class MainWindow : public mx::mxWindow {
public:
    MainWindow() : mx::mxWindow("Hello World", 640, 480, false) {
        setObject(new Intro());
        object->load(this);
    }
    
     ~MainWindow() override {

     }

    virtual void event(SDL_Event &e) override {
        
    }

    virtual void draw(SDL_Renderer *renderer) override {
        SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
        SDL_RenderClear(renderer);
        // draw

        object->draw(this);
        SDL_RenderPresent(renderer);
    }
};

int main(int argc, char **argv) {
    try {
        MainWindow main_window;
        main_window.loop();
    } 
    catch(const mx::Exception &e) {
        mx::system_err << "mx: Exception: " << e.text() << "\n";
        mx::system_err.flush();
        exit(EXIT_FAILURE);
    }
    return 0;
}