git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix scaling and conversion bugs
[enigma2.git]
/
lib
/
gdi
/
picload.cpp
diff --git
a/lib/gdi/picload.cpp
b/lib/gdi/picload.cpp
index e8a0e8c0bcd6f91ba860cf32cedfa2efdaf0cf7b..a94341db8072758121ba4ab1fc305b4714483e24 100644
(file)
--- a/
lib/gdi/picload.cpp
+++ b/
lib/gdi/picload.cpp
@@
-394,7
+394,7
@@
static int png_load(const char *filename, int *x, int *y)
if (width * height > 1000000) // 1000x1000 or equiv.
{
if (width * height > 1000000) // 1000x1000 or equiv.
{
- eDebug("[png_load] image size is %
d x %d, which is \"too large\".", width,
height);
+ eDebug("[png_load] image size is %
u x %u, which is \"too large\".", (unsigned int)width, (unsigned int)
height);
png_read_end(png_ptr, info_ptr);
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
fclose(fh);
png_read_end(png_ptr, info_ptr);
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
fclose(fh);
@@
-649,10
+649,10
@@
int loadPic(ePtr<gPixmap> &result, std::string filename, int w, int h, int aspec
double aspect_ratio;
switch(aspect)
{
double aspect_ratio;
switch(aspect)
{
- case 1: aspect_ratio = 1.778 / ((double)7
02
/576); break; //16:9
- case 2: aspect_ratio = 1.600 / ((double)7
02
/576); break; //16:10
-
//case 3: aspect_ratio = 1.250 / ((double)702
/576); break; //5:4
- default: aspect_ratio = 1.333 / ((double)7
02
/576); //4:3
+ case 1: aspect_ratio = 1.778 / ((double)7
20
/576); break; //16:9
+ case 2: aspect_ratio = 1.600 / ((double)7
20
/576); break; //16:10
+
case 3: aspect_ratio = 1.250 / ((double)720
/576); break; //5:4
+ default: aspect_ratio = 1.333 / ((double)7
20
/576); //4:3
}
if((aspect_ratio * oy * w / ox) <= h)
}
if((aspect_ratio * oy * w / ox) <= h)
@@
-688,7
+688,7
@@
int loadPic(ePtr<gPixmap> &result, std::string filename, int w, int h, int aspec
int o_y=0, u_y=0, v_x=0, h_x=0;
unsigned char clear[4] = {0x00,0x00,0x00,0x00};
if(background) clear[3]=0xFF;
int o_y=0, u_y=0, v_x=0, h_x=0;
unsigned char clear[4] = {0x00,0x00,0x00,0x00};
if(background) clear[3]=0xFF;
- unsigned char *tmp_buffer
= new unsigned char[4]
;
+ unsigned char *tmp_buffer
=((unsigned char *)(surface->data))
;
if(oy < h)
{
if(oy < h)
{
@@
-706,8
+706,8
@@
int loadPic(ePtr<gPixmap> &result, std::string filename, int w, int h, int aspec
if(oy < h)
for(a=0; a<(o_y*ox)+1; a++, nc+=4)
{
if(oy < h)
for(a=0; a<(o_y*ox)+1; a++, nc+=4)
{
- memcpy(tmp_buffer, clear, sizeof(clear));
tmp_buffer=((unsigned char *)(surface->data)) + nc;
tmp_buffer=((unsigned char *)(surface->data)) + nc;
+ memcpy(tmp_buffer, clear, sizeof(clear));
}
for(a=0; a<oy; a++)
}
for(a=0; a<oy; a++)
@@
-715,33
+715,33
@@
int loadPic(ePtr<gPixmap> &result, std::string filename, int w, int h, int aspec
if(ox < w)
for(b=0; b<v_x; b++, nc+=4)
{
if(ox < w)
for(b=0; b<v_x; b++, nc+=4)
{
- memcpy(tmp_buffer, clear, sizeof(clear));
tmp_buffer=((unsigned char *)(surface->data)) + nc;
tmp_buffer=((unsigned char *)(surface->data)) + nc;
+ memcpy(tmp_buffer, clear, sizeof(clear));
}
for(b=0; b<(ox*3); b+=3, nc+=4)
{
}
for(b=0; b<(ox*3); b+=3, nc+=4)
{
+ tmp_buffer=((unsigned char *)(surface->data)) + nc;
tmp_buffer[3]=0xFF;
tmp_buffer[2]=pic_buffer[oc++];
tmp_buffer[1]=pic_buffer[oc++];
tmp_buffer[0]=pic_buffer[oc++];
tmp_buffer[3]=0xFF;
tmp_buffer[2]=pic_buffer[oc++];
tmp_buffer[1]=pic_buffer[oc++];
tmp_buffer[0]=pic_buffer[oc++];
- tmp_buffer=((unsigned char *)(surface->data)) + nc;
}
if(ox < w)
for(b=0; b<h_x; b++, nc+=4)
{
}
if(ox < w)
for(b=0; b<h_x; b++, nc+=4)
{
- memcpy(tmp_buffer, clear, sizeof(clear));
tmp_buffer=((unsigned char *)(surface->data)) + nc;
tmp_buffer=((unsigned char *)(surface->data)) + nc;
+ memcpy(tmp_buffer, clear, sizeof(clear));
}
}
if(oy < h)
for(a=0; a<(u_y*ox)+1; a++, nc+=4)
{
}
}
if(oy < h)
for(a=0; a<(u_y*ox)+1; a++, nc+=4)
{
- memcpy(tmp_buffer, clear, sizeof(clear));
tmp_buffer=((unsigned char *)(surface->data)) + nc;
tmp_buffer=((unsigned char *)(surface->data)) + nc;
+ memcpy(tmp_buffer, clear, sizeof(clear));
}
//eDebug("[PIC] buffer=%d, nc=%d oc=%d ox=%d, oy=%d",w*h*4, nc, oc, ox, oy);
}
//eDebug("[PIC] buffer=%d, nc=%d oc=%d ox=%d, oy=%d",w*h*4, nc, oc, ox, oy);