diff --git a/examples/Example.h b/examples/Example.h index 1143fed1..b855e6c6 100644 --- a/examples/Example.h +++ b/examples/Example.h @@ -295,7 +295,7 @@ struct SwWindow : Window if (!surface) return; //Set the canvas target and draw on it. - verify(canvas->target((uint32_t*)surface->pixels, surface->w, surface->pitch / 4, surface->h, tvg::SwCanvas::ARGB8888)); + verify(canvas->target((uint32_t*)surface->pixels, surface->w, surface->pitch / 4, surface->h, tvg::ColorSpace::ARGB8888)); } void refresh() override diff --git a/examples/MultiCanvas.cpp b/examples/MultiCanvas.cpp index 98e16e22..5f3c7569 100644 --- a/examples/MultiCanvas.cpp +++ b/examples/MultiCanvas.cpp @@ -107,7 +107,7 @@ void runSw() auto offy = SIZE * (counter / NUM_PER_LINE); auto w = surface->w - offx; auto h = surface->h - offy; - tvgexam::verify(canvas->target((uint32_t*)surface->pixels + SIZE * (counter / NUM_PER_LINE) * (surface->pitch / 4) + (counter % NUM_PER_LINE) * SIZE, surface->pitch / 4, w, h, tvg::SwCanvas::ARGB8888)); + tvgexam::verify(canvas->target((uint32_t*)surface->pixels + SIZE * (counter / NUM_PER_LINE) * (surface->pitch / 4) + (counter % NUM_PER_LINE) * SIZE, surface->pitch / 4, w, h, tvg::ColorSpace::ARGB8888)); content(canvas.get()); if (tvgexam::verify(canvas->draw())) { tvgexam::verify(canvas->sync()); diff --git a/inc/thorvg.h b/inc/thorvg.h index 502ac5de..1482e8c5 100644 --- a/inc/thorvg.h +++ b/inc/thorvg.h @@ -89,6 +89,20 @@ enum class Result }; +/** + * @brief Enumeration specifying the methods of combining the 8-bit color channels into 32-bit color. + */ +enum class ColorSpace : uint8_t +{ + ABGR8888 = 0, ///< The channels are joined in the order: alpha, blue, green, red. Colors are alpha-premultiplied. + ARGB8888, ///< The channels are joined in the order: alpha, red, green, blue. Colors are alpha-premultiplied. + ABGR8888S, ///< The channels are joined in the order: alpha, blue, green, red. Colors are un-alpha-premultiplied. @since 0.12 + ARGB8888S, ///< The channels are joined in the order: alpha, red, green, blue. Colors are un-alpha-premultiplied. @since 0.12 + Grayscale8, ///< One single channel data. + Unknown = 255 ///< Unknown channel data. This is reserved for an initial ColorSpace value. @since 1.0 +}; + + /** * @brief Enumeration specifying the values of the path commands accepted by TVG. * @@ -1574,17 +1588,6 @@ class TVG_API SwCanvas final : public Canvas public: ~SwCanvas(); - /** - * @brief Enumeration specifying the methods of combining the 8-bit color channels into 32-bit color. - */ - enum Colorspace : uint8_t - { - ABGR8888 = 0, ///< The channels are joined in the order: alpha, blue, green, red. Colors are alpha-premultiplied. (a << 24 | b << 16 | g << 8 | r) - ARGB8888, ///< The channels are joined in the order: alpha, red, green, blue. Colors are alpha-premultiplied. (a << 24 | r << 16 | g << 8 | b) - ABGR8888S, ///< The channels are joined in the order: alpha, blue, green, red. Colors are un-alpha-premultiplied. @since 0.12 - ARGB8888S, ///< The channels are joined in the order: alpha, red, green, blue. Colors are un-alpha-premultiplied. @since 0.12 - }; - /** * @brief Enumeration specifying the methods of Memory Pool behavior policy. * @since 0.4 @@ -1616,7 +1619,7 @@ public: * @see Canvas::viewport() * @see Canvas::sync() */ - Result target(uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t h, Colorspace cs) noexcept; + Result target(uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t h, ColorSpace cs) noexcept; /** * @brief Set sw engine memory pool behavior policy. diff --git a/src/bindings/capi/thorvg_capi.h b/src/bindings/capi/thorvg_capi.h index 4920009d..ebb35cf0 100644 --- a/src/bindings/capi/thorvg_capi.h +++ b/src/bindings/capi/thorvg_capi.h @@ -437,10 +437,11 @@ typedef enum { * \brief Enumeration specifying the methods of combining the 8-bit color channels into 32-bit color. */ typedef enum { - TVG_COLORSPACE_ABGR8888 = 0, ///< The channels are joined in the order: alpha, blue, green, red. Colors are alpha-premultiplied. (a << 24 | b << 16 | g << 8 | r) - TVG_COLORSPACE_ARGB8888, ///< The channels are joined in the order: alpha, red, green, blue. Colors are alpha-premultiplied. (a << 24 | r << 16 | g << 8 | b) - TVG_COLORSPACE_ABGR8888S, ///< The channels are joined in the order: alpha, blue, green, red. Colors are un-alpha-premultiplied. @since 0.13 - TVG_COLORSPACE_ARGB8888S ///< The channels are joined in the order: alpha, red, green, blue. Colors are un-alpha-premultiplied. @since 0.13 + TVG_COLORSPACE_ABGR8888 = 0, ///< The channels are joined in the order: alpha, blue, green, red. Colors are alpha-premultiplied. + TVG_COLORSPACE_ARGB8888, ///< The channels are joined in the order: alpha, red, green, blue. Colors are alpha-premultiplied. + TVG_COLORSPACE_ABGR8888S, ///< The channels are joined in the order: alpha, blue, green, red. Colors are un-alpha-premultiplied. @since 0.13 + TVG_COLORSPACE_ARGB8888S, ///< The channels are joined in the order: alpha, red, green, blue. Colors are un-alpha-premultiplied. @since 0.13 + TVG_COLORSPACE_UNKNOWN = 255, ///< Unknown channel data. This is reserved for an initial ColorSpace value. @since 1.0 } Tvg_Colorspace; diff --git a/src/bindings/capi/tvgCapi.cpp b/src/bindings/capi/tvgCapi.cpp index ab36ea9a..c95946e1 100644 --- a/src/bindings/capi/tvgCapi.cpp +++ b/src/bindings/capi/tvgCapi.cpp @@ -86,7 +86,7 @@ TVG_API Tvg_Result tvg_swcanvas_set_mempool(Tvg_Canvas* canvas, Tvg_Mempool_Poli TVG_API Tvg_Result tvg_swcanvas_set_target(Tvg_Canvas* canvas, uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t h, Tvg_Colorspace cs) { if (!canvas) return TVG_RESULT_INVALID_ARGUMENT; - return (Tvg_Result) reinterpret_cast(canvas)->target(buffer, stride, w, h, static_cast(cs)); + return (Tvg_Result) reinterpret_cast(canvas)->target(buffer, stride, w, h, static_cast(cs)); } diff --git a/src/bindings/wasm/tvgWasmLottieAnimation.cpp b/src/bindings/wasm/tvgWasmLottieAnimation.cpp index a3838c17..4a23db19 100644 --- a/src/bindings/wasm/tvgWasmLottieAnimation.cpp +++ b/src/bindings/wasm/tvgWasmLottieAnimation.cpp @@ -106,7 +106,7 @@ struct TvgSwEngine : TvgEngineMethod { free(buffer); buffer = (uint8_t*)malloc(w * h * sizeof(uint32_t)); - static_cast(canvas)->target((uint32_t *)buffer, w, w, h, SwCanvas::ABGR8888S); + static_cast(canvas)->target((uint32_t *)buffer, w, w, h, ColorSpace::ABGR8888S); } val output(int w, int h) override diff --git a/src/renderer/gl_engine/tvgGlRenderer.cpp b/src/renderer/gl_engine/tvgGlRenderer.cpp index b8e658b7..de8b07a6 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.cpp +++ b/src/renderer/gl_engine/tvgGlRenderer.cpp @@ -870,7 +870,7 @@ void GlRenderer::endRenderPass(RenderCompositor* cmp) } // image info { - uint32_t info[4] = {ABGR8888, 0, cmp->opacity, 0}; + uint32_t info[4] = {(uint32_t)ColorSpace::ABGR8888, 0, cmp->opacity, 0}; uint32_t loc = task->getProgram()->getUniformBlockIndex("ColorInfo"); task->addBindResource(GlBindingResource{ @@ -1079,7 +1079,7 @@ bool GlRenderer::effect(TVG_UNUSED RenderCompositor* cmp, TVG_UNUSED const Rende ColorSpace GlRenderer::colorSpace() { - return ColorSpace::Unsupported; + return ColorSpace::Unknown; } @@ -1156,7 +1156,7 @@ bool GlRenderer::renderImage(void* data) } // image info { - uint32_t info[4] = {sdata->texColorSpace, sdata->texFlipY, sdata->opacity, 0}; + uint32_t info[4] = {(uint32_t)sdata->texColorSpace, sdata->texFlipY, sdata->opacity, 0}; uint32_t loc = task->getProgram()->getUniformBlockIndex("ColorInfo"); task->addBindResource(GlBindingResource{ diff --git a/src/renderer/sw_engine/tvgSwRenderer.cpp b/src/renderer/sw_engine/tvgSwRenderer.cpp index 58b20ff0..a5d14bb3 100644 --- a/src/renderer/sw_engine/tvgSwRenderer.cpp +++ b/src/renderer/sw_engine/tvgSwRenderer.cpp @@ -662,7 +662,7 @@ bool SwRenderer::effect(RenderCompositor* cmp, const RenderEffect* effect) ColorSpace SwRenderer::colorSpace() { if (surface) return surface->cs; - else return ColorSpace::Unsupported; + else return ColorSpace::Unknown; } diff --git a/src/renderer/tvgRender.h b/src/renderer/tvgRender.h index ef99ea36..814494b2 100644 --- a/src/renderer/tvgRender.h +++ b/src/renderer/tvgRender.h @@ -37,17 +37,6 @@ using pixel_t = uint32_t; enum RenderUpdateFlag : uint8_t {None = 0, Path = 1, Color = 2, Gradient = 4, Stroke = 8, Transform = 16, Image = 32, GradientStroke = 64, Blend = 128, All = 255}; -//TODO: Move this in public header unifying with SwCanvas::Colorspace -enum ColorSpace : uint8_t -{ - ABGR8888 = 0, //The channels are joined in the order: alpha, blue, green, red. Colors are alpha-premultiplied. - ARGB8888, //The channels are joined in the order: alpha, red, green, blue. Colors are alpha-premultiplied. - ABGR8888S, //The channels are joined in the order: alpha, blue, green, red. Colors are un-alpha-premultiplied. - ARGB8888S, //The channels are joined in the order: alpha, red, green, blue. Colors are un-alpha-premultiplied. - Grayscale8, //One single channel data. - Unsupported //TODO: Change to the default, At the moment, we put it in the last to align with SwCanvas::Colorspace. -}; - struct RenderSurface { union { @@ -58,7 +47,7 @@ struct RenderSurface Key key; //a reserved lock for the thread safety uint32_t stride = 0; uint32_t w = 0, h = 0; - ColorSpace cs = ColorSpace::Unsupported; + ColorSpace cs = ColorSpace::Unknown; uint8_t channelSize = 0; bool premultiplied = false; //Alpha-premultiplied @@ -364,7 +353,7 @@ static inline uint8_t CHANNEL_SIZE(ColorSpace cs) return sizeof(uint32_t); case ColorSpace::Grayscale8: return sizeof(uint8_t); - case ColorSpace::Unsupported: + case ColorSpace::Unknown: default: TVGERR("RENDERER", "Unsupported Channel Size! = %d", (int)cs); return 0; @@ -389,7 +378,7 @@ static inline ColorSpace COMPOSITE_TO_COLORSPACE(RenderMethod* renderer, Composi return renderer->colorSpace(); default: TVGERR("RENDERER", "Unsupported Composite Size! = %d", (int)method); - return ColorSpace::Unsupported; + return ColorSpace::Unknown; } } diff --git a/src/renderer/tvgSwCanvas.cpp b/src/renderer/tvgSwCanvas.cpp index 6c4b6da1..f3ff2207 100644 --- a/src/renderer/tvgSwCanvas.cpp +++ b/src/renderer/tvgSwCanvas.cpp @@ -79,9 +79,12 @@ Result SwCanvas::mempool(MempoolPolicy policy) noexcept } -Result SwCanvas::target(uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t h, Colorspace cs) noexcept +Result SwCanvas::target(uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t h, ColorSpace cs) noexcept { #ifdef THORVG_SW_RASTER_SUPPORT + if (cs == ColorSpace::Unknown) return Result::InvalidArguments; + if (cs == ColorSpace::Grayscale8) return Result::NonSupport; + if (Canvas::pImpl->status != Status::Damaged && Canvas::pImpl->status != Status::Synced) { return Result::InsufficientCondition; } diff --git a/src/renderer/wg_engine/tvgWgRenderer.cpp b/src/renderer/wg_engine/tvgWgRenderer.cpp index a418b285..598b7a2f 100755 --- a/src/renderer/wg_engine/tvgWgRenderer.cpp +++ b/src/renderer/wg_engine/tvgWgRenderer.cpp @@ -232,7 +232,7 @@ bool WgRenderer::blend(BlendMethod method) ColorSpace WgRenderer::colorSpace() { - return ColorSpace::Unsupported; + return ColorSpace::Unknown; } diff --git a/src/savers/gif/tvgGifSaver.cpp b/src/savers/gif/tvgGifSaver.cpp index 83ac711d..d32940f7 100644 --- a/src/savers/gif/tvgGifSaver.cpp +++ b/src/savers/gif/tvgGifSaver.cpp @@ -41,7 +41,7 @@ void GifSaver::run(unsigned tid) auto h = static_cast(vsize[1]); buffer = (uint32_t*)realloc(buffer, sizeof(uint32_t) * w * h); - canvas->target(buffer, w, w, h, tvg::SwCanvas::ABGR8888S); + canvas->target(buffer, w, w, h, ColorSpace::ABGR8888S); canvas->push(cast(bg)); bg = nullptr; diff --git a/test/testAccessor.cpp b/test/testAccessor.cpp index ab6080bb..a73a8ff6 100644 --- a/test/testAccessor.cpp +++ b/test/testAccessor.cpp @@ -45,7 +45,7 @@ TEST_CASE("Set", "[tvgAccessor]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); auto picture = Picture::gen(); REQUIRE(picture); diff --git a/test/testPicture.cpp b/test/testPicture.cpp index 52648522..7032970a 100644 --- a/test/testPicture.cpp +++ b/test/testPicture.cpp @@ -76,7 +76,7 @@ TEST_CASE("Load RAW file and render", "[tvgPicture]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); auto picture = Picture::gen(); REQUIRE(picture); @@ -211,7 +211,7 @@ TEST_CASE("Load SVG file and render", "[tvgPicture]") auto buffer = new uint32_t[1000*1000]; if (!buffer) return; - REQUIRE(canvas->target(buffer, 1000, 1000, 1000, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 1000, 1000, 1000, ColorSpace::ABGR8888) == Result::Success); auto picture = Picture::gen(); REQUIRE(picture); @@ -281,7 +281,7 @@ TEST_CASE("Load PNG file and render", "[tvgPicture]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); auto picture = Picture::gen(); REQUIRE(picture); @@ -351,7 +351,7 @@ TEST_CASE("Load JPG file and render", "[tvgPicture]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); auto picture = Picture::gen(); REQUIRE(picture); @@ -421,7 +421,7 @@ TEST_CASE("Load TVG file and render", "[tvgPicture]") auto buffer = new uint32_t[1000*1000]; if (!buffer) return; - REQUIRE(canvas->target(buffer, 1000, 1000, 1000, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 1000, 1000, 1000, ColorSpace::ABGR8888) == Result::Success); auto pictureTag = Picture::gen(); REQUIRE(pictureTag); @@ -491,7 +491,7 @@ TEST_CASE("Load WEBP file and render", "[tvgPicture]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); auto picture = Picture::gen(); REQUIRE(picture); diff --git a/test/testSwCanvas.cpp b/test/testSwCanvas.cpp index 1122e971..0e2328a8 100644 --- a/test/testSwCanvas.cpp +++ b/test/testSwCanvas.cpp @@ -57,14 +57,14 @@ TEST_CASE("Target Buffer", "[tvgSwCanvas]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); - REQUIRE(canvas->target(nullptr, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::InvalidArguments); - REQUIRE(canvas->target(buffer, 0, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::InvalidArguments); - REQUIRE(canvas->target(buffer, 100, 0, 100, SwCanvas::Colorspace::ARGB8888) == Result::InvalidArguments); - REQUIRE(canvas->target(buffer, 100, 200, 100, SwCanvas::Colorspace::ARGB8888) == Result::InvalidArguments); - REQUIRE(canvas->target(buffer, 100, 100, 0, SwCanvas::Colorspace::ARGB8888) == Result::InvalidArguments); + REQUIRE(canvas->target(nullptr, 100, 100, 100, ColorSpace::ARGB8888) == Result::InvalidArguments); + REQUIRE(canvas->target(buffer, 0, 100, 100, ColorSpace::ARGB8888) == Result::InvalidArguments); + REQUIRE(canvas->target(buffer, 100, 0, 100, ColorSpace::ARGB8888) == Result::InvalidArguments); + REQUIRE(canvas->target(buffer, 100, 200, 100, ColorSpace::ARGB8888) == Result::InvalidArguments); + REQUIRE(canvas->target(buffer, 100, 100, 0, ColorSpace::ARGB8888) == Result::InvalidArguments); REQUIRE(Initializer::term(CanvasEngine::Sw) == Result::Success); } @@ -104,7 +104,7 @@ TEST_CASE("Pushing Paints", "[tvgSwCanvas]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); //Try all types of paints. REQUIRE(canvas->push(Shape::gen()) == Result::Success); @@ -172,10 +172,10 @@ TEST_CASE("Clear", "[tvgSwCanvas]") REQUIRE(canvas2->clear(false) == Result::InsufficientCondition); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); uint32_t buffer2[100*100]; - REQUIRE(canvas2->target(buffer2, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas2->target(buffer2, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); //Try 1: Push -> Clear for (int i = 0; i < 5; ++i) { @@ -221,7 +221,7 @@ TEST_CASE("Update", "[tvgSwCanvas]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); REQUIRE(canvas->update() == Result::InsufficientCondition); @@ -260,7 +260,7 @@ TEST_CASE("Synchronized Drawing", "[tvgSwCanvas]") REQUIRE(canvas->draw() == Result::InsufficientCondition); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); REQUIRE(canvas->draw() == Result::InsufficientCondition); REQUIRE(canvas->sync() == Result::InsufficientCondition); @@ -295,7 +295,7 @@ TEST_CASE("Asynchronous Drawing", "[tvgSwCanvas]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); for (int i = 0; i < 3; ++i) { auto shape = Shape::gen(); @@ -322,7 +322,7 @@ TEST_CASE("Viewport", "[tvgSwCanvas]") REQUIRE(canvas->viewport(25, 25, 100, 100) == Result::Success); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); REQUIRE(canvas->viewport(25, 25, 50, 50) == Result::Success); diff --git a/test/testSwEngine.cpp b/test/testSwEngine.cpp index 24521ac2..89fc16c7 100644 --- a/test/testSwEngine.cpp +++ b/test/testSwEngine.cpp @@ -38,7 +38,7 @@ TEST_CASE("Basic draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100] = {0, }; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888S) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888S) == Result::Success); //Arc Line auto shape1 = tvg::Shape::gen(); @@ -100,7 +100,7 @@ TEST_CASE("Image Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //raw image ifstream file(TEST_DIR"/rawimage_200x300.raw"); @@ -385,7 +385,7 @@ TEST_CASE("Rect Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Basic shapes and masking auto basicShape = tvg::Shape::gen(); @@ -443,7 +443,7 @@ TEST_CASE("RLE Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Basic shapes and masking auto basicShape = tvg::Shape::gen(); @@ -501,7 +501,7 @@ TEST_CASE("Filling Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -552,7 +552,7 @@ TEST_CASE("Filling Opaque Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -601,7 +601,7 @@ TEST_CASE("Filling AlphaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -660,7 +660,7 @@ TEST_CASE("Filling InvAlphaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -719,7 +719,7 @@ TEST_CASE("Filling LumaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -778,7 +778,7 @@ TEST_CASE("Filling Clipping", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -837,7 +837,7 @@ TEST_CASE("RLE Filling Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -886,7 +886,7 @@ TEST_CASE("RLE Filling Opaque Draw", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -935,7 +935,7 @@ TEST_CASE("RLE Filling AlphaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -994,7 +994,7 @@ TEST_CASE("RLE Filling InvAlphaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -1053,7 +1053,7 @@ TEST_CASE("RLE Filling LumaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -1112,7 +1112,7 @@ TEST_CASE("RLE Filling InvLumaMask", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ARGB8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ARGB8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -1171,7 +1171,7 @@ TEST_CASE("RLE Filling Clipping", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //Fill auto linearFill = LinearGradient::gen(); @@ -1230,7 +1230,7 @@ TEST_CASE("Blending Shapes", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); BlendMethod methods[14] = { BlendMethod::Normal, @@ -1282,7 +1282,7 @@ TEST_CASE("Blending Images", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); //raw image ifstream file(TEST_DIR"/rawimage_200x300.raw"); @@ -1365,7 +1365,7 @@ TEST_CASE("Blending with Gradient Filling", "[tvgSwEngine]") REQUIRE(canvas); uint32_t buffer[100*100]; - REQUIRE(canvas->target(buffer, 100, 100, 100, SwCanvas::Colorspace::ABGR8888) == Result::Success); + REQUIRE(canvas->target(buffer, 100, 100, 100, ColorSpace::ABGR8888) == Result::Success); Fill::ColorStop cs[4] = { {0.0f, 0, 0, 0, 0}, diff --git a/tools/svg2png/svg2png.cpp b/tools/svg2png/svg2png.cpp index 0b25d9b8..f4ebdd9e 100644 --- a/tools/svg2png/svg2png.cpp +++ b/tools/svg2png/svg2png.cpp @@ -126,7 +126,7 @@ public: return 1; } - if (canvas->target(buffer, w, w, h, tvg::SwCanvas::ARGB8888S) != tvg::Result::Success) { + if (canvas->target(buffer, w, w, h, tvg::ColorSpace::ARGB8888S) != tvg::Result::Success) { cout << "Error: Canvas target failure" << endl; return 1; }