X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fpixelstore.cpp;h=409f0f9a862e3582c975a486188452a60544dfb6;hp=629162cd890b1a9dfd760bc47ddc60a41ef784a9;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hpb=57de40e1e802e44ae5b4caa67b0bb8763828b5c3 diff --git a/source/pixelstore.cpp b/source/pixelstore.cpp index 629162cd..409f0f9a 100644 --- a/source/pixelstore.cpp +++ b/source/pixelstore.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "gl.h" #include "pixelformat.h" #include "pixelstore.h" @@ -22,7 +23,7 @@ PixelStore PixelStore::from_image(const Graphics::Image &img) { PixelStore pstore; unsigned stride = img.get_stride(); - unsigned ncomp = get_component_count(pixelformat_from_graphics(img.get_format())); + unsigned ncomp = get_component_count(pixelformat_from_image(img)); pstore.set_canvas_size(img.get_stride()/ncomp, 0); pstore.set_alignment(min(stride&~(stride-1), 8U)); return pstore; @@ -52,6 +53,7 @@ void PixelStore::update_parameter(int mask) const void PixelStore::set_canvas_size(unsigned w, unsigned h) { + static Require _req(EXT_unpack_subimage); row_length = w; image_height = h; update_parameter(SIZE); @@ -59,6 +61,7 @@ void PixelStore::set_canvas_size(unsigned w, unsigned h) void PixelStore::set_origin(unsigned x, unsigned y, unsigned z) { + static Require _req(EXT_unpack_subimage); if(z>0) static Require _req3d(EXT_texture3D); skip_pixels = x;