1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef _GRAPHICS_H_
18 #define _GRAPHICS_H_
19 
20 #include "minui/minui.h"
21 
22 class MinuiBackend {
23  public:
24   enum DrmConnector {
25     DRM_MAIN = 0,
26     DRM_SEC,
27     DRM_MAX,
28   };
29 
30   // Initializes the backend and returns a GRSurface* to draw into.
31   virtual GRSurface* Init() = 0;
32 
33   // Causes the current drawing surface (returned by the most recent call to Flip() or Init()) to
34   // be displayed, and returns a new drawing surface.
35   virtual GRSurface* Flip() = 0;
36 
37   // Blank (or unblank) the default screen.
38   virtual void Blank(bool) = 0;
39 
40   // Blank (or unblank) the specific screen.
41   virtual void Blank(bool blank, DrmConnector index) = 0;
42 
43   // Return true if the device supports multiple connectors.
44   virtual bool HasMultipleConnectors() = 0;
45 
46   // Device cleanup when drawing is done.
47   virtual ~MinuiBackend() = default;
48 };
49 
50 #endif  // _GRAPHICS_H_
51