forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2008 Dolphin Emulator Project
 | |
| // Licensed under GPLv2+
 | |
| // Refer to the license.txt file included.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <functional>
 | |
| #include <string>
 | |
| 
 | |
| #include "Common/CommonTypes.h"
 | |
| 
 | |
| namespace OSD
 | |
| {
 | |
| struct Message
 | |
| {
 | |
|   Message() {}
 | |
|   Message(const std::string& s, u32 ts, u32 rgba) : m_str(s), m_timestamp(ts), m_rgba(rgba) {}
 | |
|   std::string m_str;
 | |
|   u32 m_timestamp;
 | |
|   u32 m_rgba;
 | |
| };
 | |
| 
 | |
| enum class MessageType
 | |
| {
 | |
|   NetPlayPing,
 | |
|   NetPlayBuffer,
 | |
| 
 | |
|   // This entry must be kept last so that persistent typed messages are
 | |
|   // displayed before other messages
 | |
|   Typeless,
 | |
| };
 | |
| 
 | |
| namespace Color
 | |
| {
 | |
| constexpr u32 CYAN = 0xFF00FFFF;
 | |
| constexpr u32 GREEN = 0xFF00FF00;
 | |
| constexpr u32 RED = 0xFFFF0000;
 | |
| constexpr u32 YELLOW = 0xFFFFFF30;
 | |
| };
 | |
| 
 | |
| namespace Duration
 | |
| {
 | |
| constexpr u32 SHORT = 2000;
 | |
| constexpr u32 NORMAL = 5000;
 | |
| constexpr u32 VERY_LONG = 10000;
 | |
| };
 | |
| 
 | |
| // On-screen message display (colored yellow by default)
 | |
| void AddMessage(const std::string& message, u32 ms = Duration::SHORT, u32 rgba = Color::YELLOW);
 | |
| void AddTypedMessage(MessageType type, const std::string& message, u32 ms = Duration::SHORT,
 | |
|                      u32 rgba = Color::YELLOW);
 | |
| void DrawMessage(const Message& msg, int top, int left, int time_left);  // draw one message
 | |
| void DrawMessages();  // draw the current messages on the screen. Only call once
 | |
|                       // per frame.
 | |
| void ClearMessages();
 | |
| 
 | |
| // On-screen callbacks
 | |
| enum class CallbackType
 | |
| {
 | |
|   Initialization,
 | |
|   OnFrame,
 | |
|   Shutdown
 | |
| };
 | |
| using Callback = std::function<void()>;
 | |
| 
 | |
| void AddCallback(CallbackType type, Callback cb);
 | |
| void DoCallbacks(CallbackType type);
 | |
| }  // namespace OSD
 |