aboutsummaryrefslogtreecommitdiff
path: root/texture.h
blob: cae0d3362b1f20eecc3e8e5e3a7dcc9e7ceb2739 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef IMV_TEXTURE_H
#define IMV_TEXTURE_H

#include <SDL2/SDL.h>
#include <FreeImage.h>

struct imv_texture {
  int width;              //width of the texture overall
  int height;             //height of the texture overall
  int num_chunks;         //number of chunks allocated
  SDL_Texture **chunks;   //array of chunks
  int num_chunks_wide;    //number of chunks per row of the image
  int num_chunks_tall;    //number of chunks per column of the image
  int chunk_width;        //chunk width
  int chunk_height;       //chunk height
  int last_chunk_width;   //width of rightmost chunk
  int last_chunk_height;  //height of bottommost chunk
  SDL_Renderer *renderer; //SDL renderer to draw to
};

void imv_init_texture(struct imv_texture *tex, SDL_Renderer *r);
void imv_destroy_texture(struct imv_texture *tex);

int imv_texture_set_image(struct imv_texture *tex, FIBITMAP *image);
void imv_texture_draw(struct imv_texture *tex, int x, int y, double scale);

#endif