Changeset 29153
- Timestamp:
- 06/02/14 20:38:16 (9 years ago)
- Location:
- titan/titan
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/titan/header.h
r29094 r29153 663 663 inline void drawpixelfastfb(struct fb* node, int posx, int posy, unsigned long color); 664 664 inline void drawpixelfb(struct fb* node, int posx, int posy, unsigned long color); 665 unsigned char * resize(unsigned char *origin, int ox, int oy, int dx, int dy, int type, unsigned char * dst, int flag) 665 666 666 667 //volume.h -
titan/titan/skin.h
r29094 r29153 4346 4346 } 4347 4347 4348 unsigned char * resize(unsigned char *origin, int ox, int oy, int dx, int dy, int type, unsigned char * dst, int flag) 4349 { 4350 unsigned char * cr; 4351 4352 if(dst == NULL) 4353 { 4354 cr = (unsigned char*) malloc(dx*dy*3); 4355 4356 if(cr == NULL) 4357 { 4358 printf("Error: malloc\n"); 4359 return(origin); 4360 } 4361 } 4362 else 4363 cr = dst; 4364 4365 if(type == 1) 4366 { 4367 unsigned char *p,*l; 4368 int i,j,k,ip; 4369 l = cr; 4370 4371 for(j=0; j<dy; j++, l += dx*3) 4372 { 4373 p = origin + (j*oy/dy*ox*3); 4374 for(i=0, k=0; i<dx; i++, k+=3) 4375 { 4376 ip=i*ox/dx*3; 4377 memmove(l+k, p+ip, 3); 4378 } 4379 } 4380 } 4381 else 4382 { 4383 unsigned char *p,*q; 4384 int i,j,k,l,ya,yb; 4385 int sq,r,g,b; 4386 4387 p=cr; 4388 4389 int xa_v[dx]; 4390 for(i=0;i<dx;i++) 4391 xa_v[i] = i*ox/dx; 4392 int xb_v[dx+1]; 4393 4394 for(i=0;i<dx;i++) 4395 { 4396 xb_v[i]= (i+1)*ox/dx; 4397 if(xb_v[i]>=ox) 4398 xb_v[i]=ox-1; 4399 } 4400 4401 for(j=0;j<dy;j++) 4402 { 4403 ya= j*oy/dy; 4404 yb= (j+1)*oy/dy; if(yb>=oy) yb=oy-1; 4405 for(i=0;i<dx;i++,p+=3) 4406 { 4407 for(l=ya,r=0,g=0,b=0,sq=0;l<=yb;l++) 4408 { 4409 q=origin+((l*ox+xa_v[i])*3); 4410 for(k=xa_v[i];k<=xb_v[i];k++,q+=3,sq++) 4411 { 4412 r+=q[0]; g+=q[1]; b+=q[2]; 4413 } 4414 } 4415 p[0]=r/sq; p[1]=g/sq; p[2]=b/sq; 4416 } 4417 } 4418 } 4419 4420 if(flag == 1) 4421 free(origin); 4422 4423 return(cr); 4424 } 4425 4348 4426 #endif
Note: See TracChangeset
for help on using the changeset viewer.