| 155 | } |
| 156 | |
| 157 | void GetLayerRenderFrame(uint8* rgbaBytes, A_u_long srcStride, A_u_long dstStride, A_long width, |
| 158 | A_long height, AEGP_LayerRenderOptionsH& renderOptions) { |
| 159 | if (rgbaBytes == nullptr || width <= 0 || height <= 0 || srcStride <= 0 || dstStride <= 0) { |
| 160 | return; |
| 161 | } |
| 162 | Suites->LayerRenderOptionsSuite2()->AEGP_SetWorldType(renderOptions, AEGP_WorldType_8); |
| 163 | Suites->LayerRenderOptionsSuite2()->AEGP_SetDownsampleFactor(renderOptions, 1, 1); |
| 164 | |
| 165 | AEGP_FrameReceiptH frameReceipt; |
| 166 | Suites->RenderSuite5()->AEGP_RenderAndCheckoutLayerFrame(renderOptions, nullptr, nullptr, |
| 167 | &frameReceipt); |
| 168 | |
| 169 | AEGP_WorldH imageWorld; |
| 170 | Suites->RenderSuite5()->AEGP_GetReceiptWorld(frameReceipt, &imageWorld); |
| 171 | |
| 172 | PF_Pixel* pixels = nullptr; |
| 173 | Suites->WorldSuite3()->AEGP_GetBaseAddr8(imageWorld, &pixels); |
| 174 | |
| 175 | exporter::ConvertARGBToRGBA(&(pixels->alpha), width, height, srcStride, rgbaBytes, dstStride); |
| 176 | Suites->RenderSuite5()->AEGP_CheckinFrame(frameReceipt); |
| 177 | } |
| 178 | |
| 179 | void GetLayerRenderFrameSize(AEGP_LayerRenderOptionsH& renderOptions, A_u_long& stride, |
| 180 | A_long& width, A_long& height) { |
no test coverage detected