Elaztek Developer Hub
Blamite Game Engine - blam!  00368.02.12.23.1347.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, 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::Extensions::LoadExtensionFunction
BLAM BlamResult LoadExtensionFunction(void **function_callback, char *function_name, HMODULE module_handle, std::string module_filename)
Loads a function within a given extension.
Definition: extensions.cpp:11
BlamEngineExtension::extension_handle
HMODULE extension_handle
Definition: extensions.h:36
BlamEngineExtension
Class representing a Blamite Engine Extension.
Definition: extensions.h:22
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
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
BlamEngineExtension::name
std::string name
The name of the extension.
Definition: extensions.h:31
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
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
BlamEngineExtension::LoadCallbacks
BlamResult LoadCallbacks()
Loads all required callbacks for the extension.
Definition: BlamEngineExtension.cpp:5
BlamEngineExtension::OnDisable
void OnDisable()
Called when the extension is disabled.
Definition: BlamEngineExtension.cpp:49