2 Copyright 2004-2021 Chris Tallon
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP. If not, see <https://www.gnu.org/licenses/>.
27 // See image.h for docs
30 using OsdImage = std::shared_ptr<OsdImageBase>;
31 class OsdImageBase {};
40 static Osd* getInstance();
43 virtual int shutdown()=0;
44 virtual int restore() { return 1; };
45 virtual int stopUpdate() { return 1; };
47 virtual Surface* createNewSurface()=0; // For Boxx
48 virtual int charSet() { return 1; };
50 bool isInitted() { return initted; };
52 virtual bool screenShot(const char* fileName)=0;
54 virtual int getFontNames(const char*** /* names */,const char*** /* names_keys */) { return 0; };
55 virtual void setFont(const char* /* fontname */) {};
57 virtual float getPixelAspect() { return 1.f; };
59 // OSDOVG-ROD-EXPERIMENT
60 virtual void doRender() { };
63 OsdImage createOsdImage();
64 virtual void garbageCollectOsdImages()=0;
75 void addOsdImage(OsdImage& oImage);
76 std::vector<OsdImage> images;
77 std::mutex imagesLock;