#pragma once
#include <stdint.h>

// Funcions de pintat

namespace draw
{
    struct surface_t
    {
        uint8_t *pixels;
        uint16_t w, h;
    };

    void init();
    void cls();
    surface_t *newsurf(int w, int h);
    surface_t *loadgif(const char* filename);
    uint32_t *loadpal(const char* filename);
    void setpal(uint32_t* pal);
    void putp(int x, int y, uint8_t color);
    void putpd(int x, int y, uint8_t color, float depth);
    void putps(int x, int y, uint8_t color, float depth);
    uint8_t getp(surface_t *surf, int x, int y);

    void putpsurf(surface_t *dest, int x, int y, uint8_t color);
    void drawsurf(int x, int y, surface_t *src, surface_t *dst);

    void line(int x1, int y1, int x2, int y2, uint8_t color);
    void render();
    void flip();

    namespace map
    {
        void putp(int x, int y, uint8_t color);
        void line(int x1, int y1, int x2, int y2, uint8_t color, int ox, int oy);
    }
}
