1 /***************************************************************************
3 * Copyright 2012 BMW Car IT GmbH
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 ****************************************************************************/
20 #include "TextRenderer.h"
21 #include "Configuration.h"
26 TextRenderer::TextRenderer(ICommandExecutor& executor, Configuration& config)
27 : BaseRenderer(executor, config)
31 LOG_DEBUG("TextRenderer", "created");
34 bool TextRenderer::start(int width, int height, const char* displayname, int maxIterationDurationInMS)
36 (void)maxIterationDurationInMS;
42 LmScreenList& screenList = m_pScene->getScreenList();
43 LmScreen* lmScreen = new LmScreen();
44 screenList.push_back(lmScreen);
46 LOG_DEBUG("TextRenderer", "start("
48 << ", height=" << height
49 << ", displayname=" << displayname << ")");
53 void TextRenderer::stop()
55 LOG_DEBUG("TextRenderer", "stop");
58 TextRenderer::~TextRenderer()
60 LOG_DEBUG("TextRenderer", "destroyed");
63 void TextRenderer::doScreenShot(std::string fileToSave, uint screen_id)
65 LOG_DEBUG("TextRenderer", "doScreenShot("
66 << "fileToSave=" << fileToSave
67 << ", screenID=" << screen_id <<")");
68 std::fstream file(fileToSave.c_str());
71 void TextRenderer::doScreenShotOfLayer(std::string fileToSave, uint id)
73 LOG_DEBUG("TextRenderer", "doScreenShotOfLayer("
74 << "fileToSave=" << fileToSave
75 << ", id=" << id << ")");
76 std::fstream file(fileToSave.c_str());
79 void TextRenderer::doScreenShotOfSurface(std::string fileToSave, uint id, uint layer_id)
81 LOG_DEBUG("TextRenderer", "doScreenShotOfSurface("
82 << "fileToSave=" << fileToSave
84 << ", layer_id=" << layer_id << ")");
85 std::fstream file(fileToSave.c_str());
88 uint TextRenderer::getNumberOfHardwareLayers(uint screenID)
90 LOG_DEBUG("TextRenderer", "getNumberOfHardwareLayers(screenID=" << screenID << ")");
94 uint* TextRenderer::getScreenResolution(uint screenID)
96 LOG_DEBUG("TextRenderer", "getScreenResolution(screenID=" << screenID << ")");
98 uint * resolution = new uint[2];
99 resolution[0] = m_width;
100 resolution[1] = m_height;
104 uint* TextRenderer::getScreenIDs(uint* length)
106 LOG_DEBUG("TextRenderer", "getScreenIDs");
108 // Screens in X11 can be addresses/accessed by just the number - we must only know how many there are
109 uint numberOfScreens = 1;
110 uint* screenIDS = new uint[numberOfScreens];
111 for (uint i = 0; i < numberOfScreens; i++)
115 *length = numberOfScreens;
119 void TextRenderer::signalWindowSystemRedraw()
121 LOG_DEBUG("TextRenderer", "signalWindowSystemRedraw");
124 void TextRenderer::forceCompositionWindowSystem()
126 LOG_DEBUG("TextRenderer", "forceCompositionWindowSystem");
129 bool TextRenderer::setOptimizationMode(OptimizationType id, OptimizationModeType mode)
131 LOG_DEBUG("TextRenderer", "setOptimizationMode("
133 << ", mode=" << mode << ")");
134 m_optimizationMode = mode;
138 bool TextRenderer::getOptimizationMode(OptimizationType id, OptimizationModeType* mode)
141 LOG_DEBUG("TextRenderer", "getOptimizationMode("
142 << "id=" << id << ")");
143 *mode = m_optimizationMode;
147 t_ilm_const_string TextRenderer::pluginGetName() const
149 return "TextRenderer";
152 int TextRenderer::getIterationCounter()
154 // no internal thread, fake thread iterations
159 DECLARE_LAYERMANAGEMENT_PLUGIN(TextRenderer)