| 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 | { |
no test coverage detected