MCPcopy Create free account
hub / github.com/defold/defold / DoEncode

Function DoEncode

engine/tools/src/texconvert/main.cpp:183–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181}
182
183int DoEncode(EncodeParams params)
184{
185 int x,y,n;
186 unsigned char *data = stbi_load(params.m_PathIn, &x, &y, &n, 0);
187
188 uint32_t data_size = x * y * n;
189
190 dmTexc::Image* image = dmTexc::CreateImage(params.m_PathIn, x, y, GetPixelFormatFromChannels(n), params.m_ColorSpace, data_size,data);
191
192 if (params.m_PremultiplyAlpha && !dmTexc::PreMultiplyAlpha(image))
193 {
194 printf("Unable to premultiply alpha\n");
195 return -1;
196 }
197
198 if (params.m_FlipY && !dmTexc::Flip(image, dmTexc::FLIP_AXIS_Y))
199 {
200 printf("Unable to flip Y\n");
201 return -1;
202 }
203
204 if (params.m_FlipX && !dmTexc::Flip(image, dmTexc::FLIP_AXIS_X))
205 {
206 printf("Unable to flip Y\n");
207 return -1;
208 }
209
210 if (params.m_MipMaps)
211 {
212 printf("Mipmap generation is currently not implement. File a feature request if you need it.\n");
213 }
214
215 uint8_t* out = 0;
216 uint32_t out_size = 0;
217
218 if (params.m_CompressionType == dmTexc::CT_DEFAULT)
219 {
220 dmTexc::DefaultEncodeSettings settings = {};
221 settings.m_Path = image->m_Path;
222 settings.m_Width = x;
223 settings.m_Height = y;
224 settings.m_PixelFormat = image->m_PixelFormat;
225 settings.m_ColorSpace = image->m_ColorSpace;
226 settings.m_Data = image->m_Data;
227 settings.m_DataCount = image->m_DataCount;
228 settings.m_NumThreads = 4;
229 settings.m_Debug = false;
230 settings.m_OutPixelFormat = image->m_PixelFormat;
231
232 if (!dmTexc::DefaultEncode(&settings, &out, &out_size))
233 {
234 printf("Unable to encode\n");
235 dmTexc::DestroyImage(image);
236 free(out);
237 return -1;
238 }
239 }
240 else if (params.m_CompressionType == dmTexc::CT_BASIS_UASTC ||

Callers 1

mainFunction · 0.85

Calls 10

stbi_loadFunction · 0.85
DefaultEncodeFunction · 0.85
freeFunction · 0.85
BasisUEncodeFunction · 0.85
stbi_image_freeFunction · 0.85
CreateImageFunction · 0.50
PreMultiplyAlphaFunction · 0.50
FlipFunction · 0.50
DestroyImageFunction · 0.50

Tested by

no test coverage detected