raylib-cpp
C++ object-oriented wrapper library for raylib.
Functions.hpp
1 
4 #ifndef RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_
5 #define RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_
6 
7 #include <string>
8 #include <vector>
9 
10 #include "./raylib.hpp"
11 
15 #ifndef RLCPPAPI
16 #define RLCPPAPI static
17 #endif
18 
19 namespace raylib {
20 
24 RLCPPAPI inline void InitWindow(int width, int height, const std::string& title = "raylib") {
25  ::InitWindow(width, height, title.c_str());
26 }
27 
31 RLCPPAPI inline void SetWindowTitle(const std::string& title) {
32  ::SetWindowTitle(title.c_str());
33 }
34 
38 RLCPPAPI inline std::string GetMonitorName(int monitor = 0) {
39  return ::GetMonitorName(monitor);
40 }
41 
45 RLCPPAPI inline void SetClipboardText(const std::string& text) {
46  ::SetClipboardText(text.c_str());
47 }
48 
52 RLCPPAPI inline std::string GetClipboardText() {
53  return ::GetClipboardText();
54 }
55 
59 RLCPPAPI inline void TakeScreenshot(const std::string& fileName) {
60  ::TakeScreenshot(fileName.c_str());
61 }
62 
66 RLCPPAPI inline std::string GetGamepadName(int gamepad) {
67  return ::GetGamepadName(gamepad);
68 }
69 
73 [[maybe_unused]]
74 RLCPPAPI std::string LoadFileText(const std::string& fileName) {
75  char* text = ::LoadFileText(fileName.c_str());
76  std::string output(text);
77  ::UnloadFileText(text);
78  return output;
79 }
80 
84 RLCPPAPI inline bool SaveFileText(const std::string& fileName, const std::string& text) {
85  return ::SaveFileText(fileName.c_str(), const_cast<char*>(text.c_str()));
86 }
87 
91 RLCPPAPI inline bool FileExists(const std::string& fileName) {
92  return ::FileExists(fileName.c_str());
93 }
94 
98 RLCPPAPI inline bool DirectoryExists(const std::string& dirPath) {
99  return ::DirectoryExists(dirPath.c_str());
100 }
101 
105 RLCPPAPI inline bool IsFileExtension(const std::string& fileName, const std::string& ext) {
106  return ::IsFileExtension(fileName.c_str(), ext.c_str());
107 }
108 
112 RLCPPAPI inline std::string GetFileExtension(const std::string& fileName) {
113  return ::GetFileExtension(fileName.c_str());
114 }
115 
119 RLCPPAPI inline std::string GetFileName(const std::string& filePath) {
120  return ::GetFileName(filePath.c_str());
121 }
122 
126 RLCPPAPI inline std::string GetFileNameWithoutExt(const std::string& filePath) {
127  return ::GetFileNameWithoutExt(filePath.c_str());
128 }
129 
133 RLCPPAPI inline std::string GetDirectoryPath(const std::string& filePath) {
134  return ::GetDirectoryPath(filePath.c_str());
135 }
136 
140 RLCPPAPI inline std::string GetPrevDirectoryPath(const std::string& dirPath) {
141  return ::GetPrevDirectoryPath(dirPath.c_str());
142 }
143 
147 RLCPPAPI inline std::string GetWorkingDirectory() {
148  return ::GetWorkingDirectory();
149 }
150 
154 [[maybe_unused]]
155 RLCPPAPI std::vector<std::string> GetDirectoryFiles(const std::string& dirPath) {
156  int count;
157  char** files = ::GetDirectoryFiles(dirPath.c_str(), &count);
158  std::vector<std::string> output(files, files + count);
159  ::ClearDirectoryFiles();
160  return output;
161 }
162 
166 RLCPPAPI inline bool ChangeDirectory(const std::string& dir) {
167  return ::ChangeDirectory(dir.c_str());
168 }
169 
173 [[maybe_unused]]
174 RLCPPAPI std::vector<std::string> GetDroppedFiles() {
175  if (!::IsFileDropped()) {
176  return std::vector<std::string>();
177  }
178  int count;
179  char** files = ::GetDroppedFiles(&count);
180  std::vector<std::string> output(files, files + count);
181  ::ClearDroppedFiles();
182  return output;
183 }
184 
188 RLCPPAPI inline long GetFileModTime(const std::string& fileName) { // NOLINT
189  return ::GetFileModTime(fileName.c_str());
190 }
191 
195 RLCPPAPI inline void OpenURL(const std::string& url) {
196  return ::OpenURL(url.c_str());
197 }
198 
202 RLCPPAPI inline void UpdateCamera(const ::Camera& camera) {
203  ::Camera* cameraPointer = (::Camera*)&camera;
204  ::UpdateCamera(cameraPointer);
205 }
206 
210 RLCPPAPI inline ::Image LoadImage(const std::string& fileName) {
211  return ::LoadImage(fileName.c_str());
212 }
213 
217 RLCPPAPI inline ::Image LoadImageRaw(const std::string& fileName,
218  int width, int height,
219  int format, int headerSize) {
220  return ::LoadImageRaw(fileName.c_str(), width, height, format, headerSize);
221 }
222 
226 RLCPPAPI inline ::Image LoadImageAnim(const std::string& fileName, int *frames) {
227  return ::LoadImageAnim(fileName.c_str(), frames);
228 }
229 
233 RLCPPAPI inline ::Image LoadImageFromMemory(const std::string& fileType,
234  const unsigned char *fileData,
235  int dataSize) {
236  return ::LoadImageFromMemory(fileType.c_str(), fileData, dataSize);
237 }
238 
242 RLCPPAPI inline bool ExportImage(const Image& image, const std::string& fileName) {
243  return ::ExportImage(image, fileName.c_str());
244 }
245 
249 RLCPPAPI inline bool ExportImageAsCode(const Image& image, const std::string& fileName) {
250  return ::ExportImageAsCode(image, fileName.c_str());
251 }
252 
256 RLCPPAPI inline void DrawText(const std::string& text, int posX, int posY, int fontSize, ::Color color) {
257  ::DrawText(text.c_str(), posX, posY, fontSize, color);
258 }
259 
263 RLCPPAPI inline void DrawTextEx(const Font& font, const std::string& text, Vector2 position,
264  float fontSize, float spacing, ::Color tint) {
265  ::DrawTextEx(font, text.c_str(), position, fontSize, spacing, tint);
266 }
267 
271 RLCPPAPI inline void DrawTextPro(const Font& font, const std::string& text, Vector2 position,
272  Vector2 origin, float rotation, float fontSize, float spacing, ::Color tint) {
273  ::DrawTextPro(font, text.c_str(), position, origin, rotation, fontSize, spacing, tint);
274 }
275 
279 RLCPPAPI inline int MeasureText(const std::string& text, int fontSize) {
280  return ::MeasureText(text.c_str(), fontSize);
281 }
282 
286 RLCPPAPI inline bool TextIsEqual(const std::string& text1, const std::string& text2) {
287  return ::TextIsEqual(text1.c_str(), text2.c_str());
288 }
289 
293 RLCPPAPI inline unsigned int TextLength(const std::string& text) {
294  return ::TextLength(text.c_str());
295 }
296 
300 RLAPI inline std::string TextSubtext(const std::string& text, int position, int length) {
301  return ::TextSubtext(text.c_str(), position, length);
302 }
303 
307 RLAPI inline std::string TextReplace(const std::string& text, const std::string& replace, const std::string& by) {
308  const char* input = text.c_str();
309  char* output = ::TextReplace(const_cast<char*>(input), replace.c_str(), by.c_str());
310  if (output != NULL) {
311  std::string stringOutput(output);
312  free(output);
313  return stringOutput;
314  }
315  return "";
316 }
317 
321 RLAPI inline std::string TextInsert(const std::string& text, const std::string& insert, int position) {
322  char* output = ::TextInsert(text.c_str(), insert.c_str(), position);
323  if (output != NULL) {
324  std::string stringOutput(output);
325  free(output);
326  return stringOutput;
327  }
328  return "";
329 }
330 
334 RLAPI inline int TextFindIndex(const std::string& text, const std::string& find) {
335  return ::TextFindIndex(text.c_str(), find.c_str());
336 }
337 
341 RLAPI inline std::string TextToUpper(const std::string& text) {
342  return ::TextToUpper(text.c_str());
343 }
344 
348 RLAPI inline std::string TextToLower(const std::string& text) {
349  return ::TextToLower(text.c_str());
350 }
351 
355 RLAPI inline std::string TextToPascal(const std::string& text) {
356  return ::TextToPascal(text.c_str());
357 }
358 
362 RLAPI inline int TextToInteger(const std::string& text) {
363  return ::TextToInteger(text.c_str());
364 }
365 
366 } // namespace raylib
367 
368 #endif // RAYLIB_CPP_INCLUDE_FUNCTIONS_HPP_
raylib::TextToPascal
RLAPI std::string TextToPascal(const std::string &text)
Get Pascal case notation version of provided string.
Definition: Functions.hpp:355
raylib
All raylib-cpp classes and functions appear in the raylib namespace.
Definition: AudioDevice.hpp:8
raylib::LoadImage
static inline ::Image LoadImage(const std::string &fileName)
Load an image.
Definition: Functions.hpp:210
raylib::GetFileName
static std::string GetFileName(const std::string &filePath)
Get pointer to filename for a path string.
Definition: Functions.hpp:119
raylib::UpdateCamera
static void UpdateCamera(const ::Camera &camera)
Update camera depending on selected mode.
Definition: Functions.hpp:202
raylib::TextFindIndex
RLAPI int TextFindIndex(const std::string &text, const std::string &find)
Find first text occurrence within a string.
Definition: Functions.hpp:334
raylib::LoadImageRaw
static inline ::Image LoadImageRaw(const std::string &fileName, int width, int height, int format, int headerSize)
Load an image from RAW file data.
Definition: Functions.hpp:217
raylib::GetPrevDirectoryPath
static std::string GetPrevDirectoryPath(const std::string &dirPath)
Get previous directory path for a given path.
Definition: Functions.hpp:140
raylib::TextIsEqual
static bool TextIsEqual(const std::string &text1, const std::string &text2)
Check if two text string are equal.
Definition: Functions.hpp:286
raylib::LoadImageFromMemory
static inline ::Image LoadImageFromMemory(const std::string &fileType, const unsigned char *fileData, int dataSize)
Load image from memory buffer, fileType refers to extension like "png".
Definition: Functions.hpp:233
raylib::SetWindowTitle
static void SetWindowTitle(const std::string &title)
Set title for window.
Definition: Functions.hpp:31
raylib::Image
Image type, bpp always RGBA (32bit)
Definition: Image.hpp:16
raylib::GetMonitorName
static std::string GetMonitorName(int monitor=0)
Get the human-readable, UTF-8 encoded name of the primary monitor.
Definition: Functions.hpp:38
raylib::LoadImageAnim
static inline ::Image LoadImageAnim(const std::string &fileName, int *frames)
Load animated image data.
Definition: Functions.hpp:226
raylib::TextToUpper
RLAPI std::string TextToUpper(const std::string &text)
Get upper case version of provided string.
Definition: Functions.hpp:341
raylib::GetFileModTime
static long GetFileModTime(const std::string &fileName)
Get file modification time (last write time)
Definition: Functions.hpp:188
raylib::TakeScreenshot
static void TakeScreenshot(const std::string &fileName)
Takes a screenshot of current screen (saved a .png)
Definition: Functions.hpp:59
raylib::GetDroppedFiles
static std::vector< std::string > GetDroppedFiles()
Get dropped files names.
Definition: Functions.hpp:174
raylib::GetGamepadName
static std::string GetGamepadName(int gamepad)
Get gamepad internal name id.
Definition: Functions.hpp:66
raylib::TextSubtext
RLAPI std::string TextSubtext(const std::string &text, int position, int length)
Get text length, checks for '\0' ending.
Definition: Functions.hpp:300
raylib::InitWindow
static void InitWindow(int width, int height, const std::string &title="raylib")
Initialize window and OpenGL context.
Definition: Functions.hpp:24
raylib::ExportImageAsCode
static bool ExportImageAsCode(const Image &image, const std::string &fileName)
Export image as code file (.h) defining an array of bytes.
Definition: Functions.hpp:249
raylib::Camera3D
Camera type, defines a camera position/orientation in 3d space.
Definition: Camera3D.hpp:12
raylib::DirectoryExists
static bool DirectoryExists(const std::string &dirPath)
Check if directory path exists.
Definition: Functions.hpp:98
raylib::GetFileNameWithoutExt
static std::string GetFileNameWithoutExt(const std::string &filePath)
Get filename string without extension.
Definition: Functions.hpp:126
raylib::GetDirectoryPath
static std::string GetDirectoryPath(const std::string &filePath)
Get full path for a given fileName with path.
Definition: Functions.hpp:133
raylib::IsFileExtension
static bool IsFileExtension(const std::string &fileName, const std::string &ext)
Check file extension (including point: .png, .wav)
Definition: Functions.hpp:105
raylib::FileExists
static bool FileExists(const std::string &fileName)
Check if file exists.
Definition: Functions.hpp:91
raylib::GetDirectoryFiles
static std::vector< std::string > GetDirectoryFiles(const std::string &dirPath)
Get filenames in a directory path.
Definition: Functions.hpp:155
raylib::DrawTextPro
static void DrawTextPro(const Font &font, const std::string &text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, ::Color tint)
Draw text using Font and pro parameters (rotation)
Definition: Functions.hpp:271
raylib::Font
Font type, includes texture and charSet array data.
Definition: Font.hpp:14
raylib::ExportImage
static bool ExportImage(const Image &image, const std::string &fileName)
Export image data to file.
Definition: Functions.hpp:242
raylib::ChangeDirectory
static bool ChangeDirectory(const std::string &dir)
Change working directory, return true on success.
Definition: Functions.hpp:166
raylib::Vector2
Vector2 type.
Definition: Vector2.hpp:16
raylib::MeasureText
static int MeasureText(const std::string &text, int fontSize)
Measure string width for default font.
Definition: Functions.hpp:279
raylib::TextReplace
RLAPI std::string TextReplace(const std::string &text, const std::string &replace, const std::string &by)
Replace text string.
Definition: Functions.hpp:307
raylib::SetClipboardText
static void SetClipboardText(const std::string &text)
Set clipboard text content.
Definition: Functions.hpp:45
raylib::Color
Color type, RGBA (32bit)
Definition: Color.hpp:14
raylib::GetFileExtension
static std::string GetFileExtension(const std::string &fileName)
Get pointer to extension for a filename string (including point: ".png")
Definition: Functions.hpp:112
raylib::SaveFileText
static bool SaveFileText(const std::string &fileName, const std::string &text)
Save text data to file (write)
Definition: Functions.hpp:84
raylib::TextToLower
RLAPI std::string TextToLower(const std::string &text)
Get lower case version of provided string.
Definition: Functions.hpp:348
raylib::DrawText
static void DrawText(const std::string &text, int posX, int posY, int fontSize, ::Color color)
Draw text (using default font)
Definition: Functions.hpp:256
raylib::LoadFileText
static std::string LoadFileText(const std::string &fileName)
Load text data from file (read)
Definition: Functions.hpp:74
raylib::OpenURL
static void OpenURL(const std::string &url)
Open URL with default system browser (if available)
Definition: Functions.hpp:195
raylib::TextLength
static unsigned int TextLength(const std::string &text)
Check if two text string are equal.
Definition: Functions.hpp:293
raylib::DrawTextEx
static void DrawTextEx(const Font &font, const std::string &text, Vector2 position, float fontSize, float spacing, ::Color tint)
Draw text using font and additional parameters.
Definition: Functions.hpp:263
raylib::GetWorkingDirectory
static std::string GetWorkingDirectory()
Get current working directory.
Definition: Functions.hpp:147
raylib::TextInsert
RLAPI std::string TextInsert(const std::string &text, const std::string &insert, int position)
Insert text in a position.
Definition: Functions.hpp:321
raylib::GetClipboardText
static std::string GetClipboardText()
Get clipboard text content.
Definition: Functions.hpp:52
raylib::TextToInteger
RLAPI int TextToInteger(const std::string &text)
Get integer value from text (negative values not supported)
Definition: Functions.hpp:362