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)
40 LmScreenList& screenList = m_pScene->getScreenList();
41 LmScreen* lmScreen = new LmScreen();
42 screenList.push_back(lmScreen);
44 LOG_DEBUG("TextRenderer", "start("
46 << ", height=" << height
47 << ", displayname=" << displayname << ")");
51 void TextRenderer::stop()
53 LOG_DEBUG("TextRenderer", "stop");
56 TextRenderer::~TextRenderer()
58 LOG_DEBUG("TextRenderer", "destroyed");
61 void TextRenderer::doScreenShot(std::string fileToSave)
63 LOG_DEBUG("TextRenderer", "doScreenShot("
64 << "fileToSave=" << fileToSave << ")");
65 std::fstream file(fileToSave.c_str());
68 void TextRenderer::doScreenShotOfLayer(std::string fileToSave,uint id)
70 LOG_DEBUG("TextRenderer", "doScreenShotOfLayer("
71 << "fileToSave=" << fileToSave
72 << ", id=" << id << ")");
73 std::fstream file(fileToSave.c_str());
76 void TextRenderer::doScreenShotOfSurface(std::string fileToSave, uint id, uint layer_id)
78 LOG_DEBUG("TextRenderer", "doScreenShotOfSurface("
79 << "fileToSave=" << fileToSave
81 << ", layer_id=" << layer_id << ")");
82 std::fstream file(fileToSave.c_str());
85 uint TextRenderer::getNumberOfHardwareLayers(uint screenID)
87 LOG_DEBUG("TextRenderer", "getNumberOfHardwareLayers(screenID=" << screenID << ")");
91 uint* TextRenderer::getScreenResolution(uint screenID)
93 LOG_DEBUG("TextRenderer", "getScreenResolution(screenID=" << screenID << ")");
95 uint * resolution = new uint[2];
96 resolution[0] = m_width;
97 resolution[1] = m_height;
101 uint* TextRenderer::getScreenIDs(uint* length)
103 LOG_DEBUG("TextRenderer", "getScreenIDs");
105 // Screens in X11 can be addresses/accessed by just the number - we must only know how many there are
106 uint numberOfScreens = 1;
107 uint* screenIDS = new uint[numberOfScreens];
108 for (uint i = 0; i < numberOfScreens; i++)
112 *length = numberOfScreens;
116 void TextRenderer::signalWindowSystemRedraw()
118 LOG_DEBUG("TextRenderer", "signalWindowSystemRedraw");
121 void TextRenderer::forceCompositionWindowSystem()
123 LOG_DEBUG("TextRenderer", "forceCompositionWindowSystem");
126 bool TextRenderer::setOptimizationMode(OptimizationType id, OptimizationModeType mode)
128 LOG_DEBUG("TextRenderer", "setOptimizationMode("
130 << ", mode=" << mode << ")");
131 m_optimizationMode = mode;
135 bool TextRenderer::getOptimizationMode(OptimizationType id, OptimizationModeType* mode)
138 LOG_DEBUG("TextRenderer", "getOptimizationMode("
139 << "id=" << id << ")");
140 *mode = m_optimizationMode;
144 HealthCondition TextRenderer::pluginGetHealth()
146 return HealthRunning;
149 t_ilm_const_string TextRenderer::pluginGetName() const
151 return "TextRenderer";
154 DECLARE_LAYERMANAGEMENT_PLUGIN(TextRenderer)