MCPcopy Create free account
hub / github.com/DentonW/DevIL / iluScale2DNear_

Function iluScale2DNear_

DevIL/src-ILU/src/ilu_scale2d.cpp:55–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53
54
55ILimage *iluScale2DNear_(ILimage *Image, ILimage *Scaled, ILuint Width, ILuint Height)
56{
57 ImgBps = Image->Bps / Image->Bpc;
58 SclBps = Scaled->Bps / Scaled->Bpc;
59
60 switch (Image->Bpc)
61 {
62 case 1:
63 for (y = 0; y < Height; y++) {
64 NewY1 = y * SclBps;
65 NewY2 = (ILuint)(y / ScaleY) * ImgBps;
66 for (x = 0; x < Width; x++) {
67 NewX1 = x * Scaled->Bpp;
68 NewX2 = (ILuint)(x / ScaleX) * Image->Bpp;
69 for (c = 0; c < Scaled->Bpp; c++) {
70 Scaled->Data[NewY1 + NewX1 + c] = Image->Data[NewY2 + NewX2 + c];
71 x1 = 0;
72 }
73 }
74 }
75 break;
76
77 case 2:
78 ShortPtr = (ILushort*)Image->Data;
79 SShortPtr = (ILushort*)Scaled->Data;
80 for (y = 0; y < Height; y++) {
81 NewY1 = y * SclBps;
82 NewY2 = (ILuint)(y / ScaleY) * ImgBps;
83 for (x = 0; x < Width; x++) {
84 NewX1 = x * Scaled->Bpp;
85 NewX2 = (ILuint)(x / ScaleX) * Image->Bpp;
86 for (c = 0; c < Scaled->Bpp; c++) {
87 SShortPtr[NewY1 + NewX1 + c] = ShortPtr[NewY2 + NewX2 + c];
88 x1 = 0;
89 }
90 }
91 }
92 break;
93
94 case 4:
95 IntPtr = (ILuint*)Image->Data;
96 SIntPtr = (ILuint*)Scaled->Data;
97 for (y = 0; y < Height; y++) {
98 NewY1 = y * SclBps;
99 NewY2 = (ILuint)(y / ScaleY) * ImgBps;
100 for (x = 0; x < Width; x++) {
101 NewX1 = x * Scaled->Bpp;
102 NewX2 = (ILuint)(x / ScaleX) * Image->Bpp;
103 for (c = 0; c < Scaled->Bpp; c++) {
104 SIntPtr[NewY1 + NewX1 + c] = IntPtr[NewY2 + NewX2 + c];
105 x1 = 0;
106 }
107 }
108 }
109 break;
110 }
111
112 return Scaled;

Callers 1

iluScale2D_Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected