Elaztek Developer Hub
Blamite Game Engine - blam!  00398.09.22.23.2015.blamite
The core library for the Blamite Game Engine.
extensions.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 #include <Windows.h>
6 
7 #include <Strings/components/resources/version/version.h>
8 #include <Strings/components/diagnostics/errors/errors.h>
9 
10 #ifndef BLAM
11 #define BLAM
12 #endif
13 
14 typedef void(CALLBACK* BlamEngineExtensionCallback_OnEnable)();
15 typedef void(CALLBACK* BlamEngineExtensionCallback_OnDisable)();
16 
23 {
24 private:
25  BlamEngineExtensionCallback_OnEnable callback_OnEnable = nullptr;
26  BlamEngineExtensionCallback_OnDisable callback_OnDisable = nullptr;
27 
28 public:
29  std::string file_path = "";
30 
31  std::string name = "";
32  std::string version = "";
33  std::string author = "";
34  std::string url = "";
35 
36  HMODULE extension_handle = 0;
37 
46  BlamResult LoadCallbacks();
47 
55  void LoadOptionalCallbacks();
56 
60  void OnEnable();
61 
65  void OnDisable();
66 };
67 
78 {
89  BLAM BlamResult LoadExtensionFunction(void** function_callback, const char* function_name, HMODULE module_handle, std::string module_filename);
90 
96  BLAM void LoadExtensions();
97 
101  BLAM void UnloadExtensions();
102 }
BlamEngineExtension::LoadOptionalCallbacks
void LoadOptionalCallbacks()
Loads all optional callbacks for the extension.
Definition: BlamEngineExtension.cpp:36
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:142
BlamEngineExtension::extension_handle
HMODULE extension_handle
Definition: extensions.h:36
logger.h
BlamEngineExtension
Class representing a Blamite Engine Extension.
Definition: extensions.h:22
extensions
std::vector< BlamEngineExtension * > extensions
Definition: extensions.cpp:9
engine_text.h
BlamEngineExtension::OnEnable
void OnEnable()
Called when the extension is enabled.
Definition: BlamEngineExtension.cpp:41
Blam::Extensions::LoadExtensions
BLAM void LoadExtensions()
Attempts to load all available extensions.
Definition: extensions.cpp:29
NULL
Add a fourth parameter to bake specific font ranges NULL
Definition: README.txt:57
BlamEngineExtension::url
std::string url
A website URL where users can learn more about the extension (such as checking for updates).
Definition: extensions.h:34
Blam::Extensions::LoadExtensionFunction
BLAM BlamResult LoadExtensionFunction(void **function_callback, const char *function_name, HMODULE module_handle, std::string module_filename)
Loads a function within a given extension.
Definition: extensions.cpp:11
BlamEngineExtension::name
std::string name
The name of the extension.
Definition: extensions.h:31
ENGINE_DATA_PATH
#define ENGINE_DATA_PATH(path)
Macro to quickly access a game engine data folder.
Definition: config.h:36
Blam::Extensions::UnloadExtensions
BLAM void UnloadExtensions()
Unloads all loaded extensions.
Definition: extensions.cpp:126
Blam::Extensions
Namespace containing functions for extensions.
Definition: extensions.h:77
BLAM
#define BLAM
Definition: extensions.h:11
BlamEngineDataFolder::Extensions
@ Extensions
Directory used for engine extensions. Defaults to ./extensions/
BlamEngineExtension::version
std::string version
The version of the extension.
Definition: extensions.h:32
BlamEngineExtension::author
std::string author
The author of the extension.
Definition: extensions.h:33
BlamEngineExtensionCallback_OnEnable
void(CALLBACK * BlamEngineExtensionCallback_OnEnable)()
Definition: extensions.h:14
BlamEngineExtension::file_path
std::string file_path
The file path to the extension file.
Definition: extensions.h:29
BlamEngineExtensionCallback_OnDisable
void(CALLBACK * BlamEngineExtensionCallback_OnDisable)()
Definition: extensions.h:15
config.h
BlamEngineExtension::LoadCallbacks
BlamResult LoadCallbacks()
Loads all required callbacks for the extension.
Definition: BlamEngineExtension.cpp:5
Blam::EngineText::LookupErrorString
BLAM std::string LookupErrorString(int error_code)
Finds a string message associated with a given error code.
Definition: engine_text.cpp:48
BlamEngineExtension::OnDisable
void OnDisable()
Called when the extension is disabled.
Definition: BlamEngineExtension.cpp:49
extensions.h
Blam::Error::ShowWin32ErrorDialog
BLAM int ShowWin32ErrorDialog(std::string message, HRESULT hr, bool allow_continue, bool allow_safemode)
Shows an Error dialog with the specified error details and result handle.
Definition: errors.cpp:169