MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / ReplacePixelDataForImage

Function ReplacePixelDataForImage

src/openrct2-ui/scripting/CustomImages.cpp:354–379  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

352 }
353
354 static void ReplacePixelDataForImage(ImageIndex id, const PixelData& pixelData, std::vector<uint8_t>&& data)
355 {
356 // Setup the g1 element
357 G1Element el{};
358 auto* lastel = GfxGetG1Element(id);
359 if (lastel != nullptr)
360 {
361 el = *lastel;
362 delete[] el.offset;
363 }
364
365 // Copy data into new unmanaged uint8_t[]
366 auto newData = new uint8_t[data.size()];
367 std::memcpy(newData, data.data(), data.size());
368
369 el.offset = newData;
370 el.width = pixelData.Width;
371 el.height = pixelData.Height;
372 el.flags = {};
373 if (pixelData.Type == PixelDataKind::Rle)
374 {
375 el.flags.set(G1Flag::hasRLECompression);
376 }
377 GfxSetG1Element(id, &el);
378 DrawingEngineInvalidateImage(id);
379 }
380
381 void JSSetPixelData(JSContext* ctx, ImageIndex id, JSValue jsPixelData)
382 {

Callers 1

JSSetPixelDataFunction · 0.85

Calls 6

GfxGetG1ElementFunction · 0.85
GfxSetG1ElementFunction · 0.85
setMethod · 0.65
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected