comparison Framework/Toolbox/TextRenderer.cpp @ 1298:8a0a62189f46

replacing std::auto_ptr by std::unique_ptr
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 02 Mar 2020 16:31:30 +0100
parents 2d8ab34c8c91
children 30deba7bc8e2
comparison
equal deleted inserted replaced
1296:86400fa16091 1298:8a0a62189f46
42 { 42 {
43 FontRenderer renderer; 43 FontRenderer renderer;
44 renderer.LoadFont(font, fontSize); 44 renderer.LoadFont(font, fontSize);
45 45
46 // add each char to be rendered to the alphabet 46 // add each char to be rendered to the alphabet
47 std::auto_ptr<GlyphBitmapAlphabet> alphabet(new GlyphBitmapAlphabet); 47 std::unique_ptr<GlyphBitmapAlphabet> alphabet(new GlyphBitmapAlphabet);
48 48
49 size_t posInString = 0; 49 size_t posInString = 0;
50 uint32_t unicode; 50 uint32_t unicode;
51 size_t utf8CharLength; 51 size_t utf8CharLength;
52 52
56 alphabet->AddUnicodeCharacter(renderer, unicode); 56 alphabet->AddUnicodeCharacter(renderer, unicode);
57 posInString += utf8CharLength; 57 posInString += utf8CharLength;
58 } 58 }
59 59
60 60
61 std::auto_ptr<Orthanc::ImageAccessor> renderedText(alphabet->RenderText(utf8String)); 61 std::unique_ptr<Orthanc::ImageAccessor> renderedText(alphabet->RenderText(utf8String));
62 62
63 // add a blank line on top of the text (to improve bilinear filtering of the topmost line) 63 // add a blank line on top of the text (to improve bilinear filtering of the topmost line)
64 std::auto_ptr<Orthanc::Image> renderedTextExtended(new Orthanc::Image(renderedText->GetFormat(), renderedText->GetWidth(), renderedText->GetHeight() + 1, true)); 64 std::unique_ptr<Orthanc::Image> renderedTextExtended(new Orthanc::Image(renderedText->GetFormat(), renderedText->GetWidth(), renderedText->GetHeight() + 1, true));
65 65
66 Orthanc::ImageAccessor textRegion; 66 Orthanc::ImageAccessor textRegion;
67 Orthanc::ImageAccessor firstLineRegion; 67 Orthanc::ImageAccessor firstLineRegion;
68 68
69 renderedTextExtended->GetRegion(firstLineRegion, 0, 0, renderedText->GetWidth(), 1); 69 renderedTextExtended->GetRegion(firstLineRegion, 0, 0, renderedText->GetWidth(), 1);
79 Orthanc::ImageAccessor* TextRenderer::RenderWithAlpha(Orthanc::EmbeddedResources::FileResourceId resource, 79 Orthanc::ImageAccessor* TextRenderer::RenderWithAlpha(Orthanc::EmbeddedResources::FileResourceId resource,
80 unsigned int fontSize, 80 unsigned int fontSize,
81 const std::string& utf8String, 81 const std::string& utf8String,
82 uint8_t foreground) 82 uint8_t foreground)
83 { 83 {
84 std::auto_ptr<Orthanc::ImageAccessor> renderedText8(Render(resource, fontSize, utf8String)); 84 std::unique_ptr<Orthanc::ImageAccessor> renderedText8(Render(resource, fontSize, utf8String));
85 std::auto_ptr<Orthanc::Image> target(new Orthanc::Image(Orthanc::PixelFormat_RGBA32, renderedText8->GetWidth(), renderedText8->GetHeight(), true)); 85 std::unique_ptr<Orthanc::Image> target(new Orthanc::Image(Orthanc::PixelFormat_RGBA32, renderedText8->GetWidth(), renderedText8->GetHeight(), true));
86 86
87 Orthanc::ImageProcessing::Set(*target, foreground, foreground, foreground, *renderedText8); 87 Orthanc::ImageProcessing::Set(*target, foreground, foreground, foreground, *renderedText8);
88 return target.release(); 88 return target.release();
89 } 89 }
90 90
96 // unsigned int fontSize, 96 // unsigned int fontSize,
97 // const std::string& utf8String, 97 // const std::string& utf8String,
98 // uint8_t foreground, 98 // uint8_t foreground,
99 // uint8_t borderColor) 99 // uint8_t borderColor)
100 // { 100 // {
101 // std::auto_ptr<Orthanc::ImageAccessor> renderedBorderAlpha(RenderWithAlpha(resource, fontSize, utf8String, borderColor)); 101 // std::unique_ptr<Orthanc::ImageAccessor> renderedBorderAlpha(RenderWithAlpha(resource, fontSize, utf8String, borderColor));
102 // std::auto_ptr<Orthanc::ImageAccessor> renderedTextAlpha(RenderWithAlpha(resource, fontSize, utf8String, foreground)); 102 // std::unique_ptr<Orthanc::ImageAccessor> renderedTextAlpha(RenderWithAlpha(resource, fontSize, utf8String, foreground));
103 103
104 // unsigned int textWidth = renderedBorderAlpha->GetWidth(); 104 // unsigned int textWidth = renderedBorderAlpha->GetWidth();
105 // unsigned int textHeight = renderedBorderAlpha->GetHeight(); 105 // unsigned int textHeight = renderedBorderAlpha->GetHeight();
106 106
107 // Scene2D targetScene; 107 // Scene2D targetScene;
108 // std::auto_ptr<ColorTextureSceneLayer> borderLayerLeft(new ColorTextureSceneLayer(*renderedBorderAlpha)); 108 // std::unique_ptr<ColorTextureSceneLayer> borderLayerLeft(new ColorTextureSceneLayer(*renderedBorderAlpha));
109 // std::auto_ptr<ColorTextureSceneLayer> borderLayerRight(new ColorTextureSceneLayer(*renderedBorderAlpha)); 109 // std::unique_ptr<ColorTextureSceneLayer> borderLayerRight(new ColorTextureSceneLayer(*renderedBorderAlpha));
110 // std::auto_ptr<ColorTextureSceneLayer> borderLayerTop(new ColorTextureSceneLayer(*renderedBorderAlpha)); 110 // std::unique_ptr<ColorTextureSceneLayer> borderLayerTop(new ColorTextureSceneLayer(*renderedBorderAlpha));
111 // std::auto_ptr<ColorTextureSceneLayer> borderLayerBottom(new ColorTextureSceneLayer(*renderedBorderAlpha)); 111 // std::unique_ptr<ColorTextureSceneLayer> borderLayerBottom(new ColorTextureSceneLayer(*renderedBorderAlpha));
112 // std::auto_ptr<ColorTextureSceneLayer> textLayerCenter(new ColorTextureSceneLayer(*renderedTextAlpha)); 112 // std::unique_ptr<ColorTextureSceneLayer> textLayerCenter(new ColorTextureSceneLayer(*renderedTextAlpha));
113 113
114 // borderLayerLeft->SetOrigin(0, 1); 114 // borderLayerLeft->SetOrigin(0, 1);
115 // borderLayerRight->SetOrigin(2, 1); 115 // borderLayerRight->SetOrigin(2, 1);
116 // borderLayerTop->SetOrigin(1, 0); 116 // borderLayerTop->SetOrigin(1, 0);
117 // borderLayerBottom->SetOrigin(1, 2); 117 // borderLayerBottom->SetOrigin(1, 2);
127 // compositor.Refresh(); 127 // compositor.Refresh();
128 128
129 // Orthanc::ImageAccessor canvas; 129 // Orthanc::ImageAccessor canvas;
130 // compositor.GetCanvas().GetReadOnlyAccessor(canvas); 130 // compositor.GetCanvas().GetReadOnlyAccessor(canvas);
131 131
132 // std::auto_ptr<Orthanc::Image> output(new Orthanc::Image(Orthanc::PixelFormat_RGBA32, canvas.GetWidth(), canvas.GetHeight(), false)); 132 // std::unique_ptr<Orthanc::Image> output(new Orthanc::Image(Orthanc::PixelFormat_RGBA32, canvas.GetWidth(), canvas.GetHeight(), false));
133 // Orthanc::ImageProcessing::Convert(*output, canvas); 133 // Orthanc::ImageProcessing::Convert(*output, canvas);
134 // return output.release(); 134 // return output.release();
135 // } 135 // }
136 } 136 }