Jimcpp 2.1.0
Jimcpp is a high-performance c++ graphics engine.
|
The Jimcpp device. You can create it with createDevice() or createDeviceEx(). More...
#include <jimcpp/core/engine/JimcppDevice.hpp>
Public Member Functions | |
virtual bool | run ()=0 |
Runs the device. | |
virtual void | yield ()=0 |
Cause the device to temporarily pause execution and let other processes run. | |
virtual void | sleep (u32 timeMs, bool pauseTimer=false)=0 |
Pause execution and let other processes to run for a specified amount of time. | |
virtual video::IVideoDriver * | getVideoDriver ()=0 |
Provides access to the video driver for drawing 3d and 2d geometry. | |
virtual io::IFileSystem * | getFileSystem ()=0 |
Provides access to the virtual file system. | |
virtual gui::IGUIEnvironment * | getGUIEnvironment ()=0 |
Provides access to the 2d user interface environment. | |
virtual scene::ISceneManager * | getSceneManager ()=0 |
Provides access to the scene manager. | |
virtual gui::ICursorControl * | getCursorControl ()=0 |
Provides access to the cursor control. | |
virtual ILogger * | getLogger ()=0 |
Provides access to the message logger. | |
virtual video::IVideoModeList * | getVideoModeList ()=0 |
Gets a list with all video modes available. | |
virtual video::IContextManager * | getContextManager ()=0 |
Get context manager. | |
virtual IOSOperator * | getOSOperator ()=0 |
Provides access to the operation system operator object. | |
virtual ITimer * | getTimer ()=0 |
Provides access to the engine's timer. | |
virtual IRandomizer * | getRandomizer () const =0 |
Provides access to the engine's currently set randomizer. | |
virtual void | setRandomizer (IRandomizer *r)=0 |
Sets a new randomizer. | |
virtual IRandomizer * | createDefaultRandomizer () const =0 |
Creates a new default randomizer. | |
virtual void | setWindowCaption (const wchar_t *text)=0 |
Sets the caption of the window. | |
virtual bool | isWindowActive () const =0 |
Returns if the window is active. | |
virtual bool | isWindowFocused () const =0 |
Checks if the Jimcpp window has the input focus. | |
virtual bool | isWindowMinimized () const =0 |
Checks if the Jimcpp window is minimized. | |
virtual bool | isFullscreen () const =0 |
Checks if the Jimcpp window is running in fullscreen mode. | |
virtual video::ECOLOR_FORMAT | getColorFormat () const =0 |
Get the current color format of the window. | |
virtual void | closeDevice ()=0 |
Notifies the device that it should close itself. | |
virtual const c8 * | getVersion () const =0 |
Get the version of the engine. | |
virtual void | setEventReceiver (IEventReceiver *receiver)=0 |
Sets a new user event receiver which will receive events from the engine. | |
virtual IEventReceiver * | getEventReceiver ()=0 |
Provides access to the current event receiver. | |
virtual bool | postEventFromUser (const SEvent &event)=0 |
Sends a user created event to the engine. | |
virtual void | setInputReceivingSceneManager (scene::ISceneManager *sceneManager)=0 |
Sets the input receiving scene manager. | |
virtual void | setResizable (bool resize=false)=0 |
Sets if the window should be resizable in windowed mode. | |
virtual void | setWindowSize (const jpp::core::dimension2d< u32 > &size)=0 |
Resize the render window. | |
virtual void | minimizeWindow ()=0 |
Minimizes the window if possible. | |
virtual void | maximizeWindow ()=0 |
Maximizes the window if possible. | |
virtual void | restoreWindow ()=0 |
Restore the window to normal size if possible. | |
virtual core::position2di | getWindowPosition ()=0 |
Get the position of the frame on-screen. | |
virtual bool | activateJoysticks (core::array< SJoystickInfo > &joystickInfo)=0 |
Activate any joysticks, and generate events for them. | |
virtual bool | setGammaRamp (f32 red, f32 green, f32 blue, f32 relativebrightness, f32 relativecontrast)=0 |
Set the current Gamma Value for the Display. | |
virtual bool | getGammaRamp (f32 &red, f32 &green, f32 &blue, f32 &brightness, f32 &contrast)=0 |
Get the current Gamma Value for the Display. | |
virtual void | setDoubleClickTime (u32 timeMs)=0 |
Set the maximal elapsed time between 2 clicks to generate doubleclicks for the mouse. It also affects tripleclick behavior. | |
virtual u32 | getDoubleClickTime () const =0 |
Get the maximal elapsed time between 2 clicks to generate double- and tripleclicks for the mouse. | |
virtual void | clearSystemMessages ()=0 |
Remove messages pending in the system message loop. | |
virtual E_DEVICE_TYPE | getType () const =0 |
Get the type of the device. | |
Public Member Functions inherited from jpp::IReferenceCounted | |
IReferenceCounted () | |
Constructor. | |
virtual | ~IReferenceCounted () |
Destructor. | |
void | grab () const |
Grabs the object. Increments the reference counter by one. | |
bool | drop () const |
Drops the object. Decrements the reference counter by one. | |
s32 | getReferenceCount () const |
Get the reference count. | |
const c8 * | getDebugName () const |
Returns the debug name of the object. | |
Static Public Member Functions | |
static bool | isDriverSupported (video::E_DRIVER_TYPE driver) |
Check if a driver type is supported by the engine. | |
Additional Inherited Members | |
Protected Member Functions inherited from jpp::IReferenceCounted | |
void | setDebugName (const c8 *newName) |
Sets the debug name of the object. | |
The Jimcpp device. You can create it with createDevice() or createDeviceEx().
This is the most important class of the Jimcpp Engine. You can access everything in the engine if you have a pointer to an instance of this class. There should be only one instance of this class at any time.
|
pure virtual |
Activate any joysticks, and generate events for them.
Jimcpp contains support for joysticks, but does not generate joystick events by default, as this would consume joystick info that 3rd party libraries might rely on. Call this method to activate joystick support in Jimcpp and to receive jpp::SJoystickEvent events.
joystickInfo | On return, this will contain an array of each joystick that was found and activated. |
|
pure virtual |
Remove messages pending in the system message loop.
This function is usually used after messages have been buffered for a longer time, for example when loading a large scene. Clearing the message loop prevents that mouse- or buttonclicks which users have pressed in the meantime will now trigger unexpected actions in the gui.
So far the following messages are cleared:
Win32: All keyboard and mouse messages
Linux: All keyboard and mouse messages
All other devices are not yet supported here.
The function is still somewhat experimental, as the kind of messages we clear is based on just a few use-cases. If you think further messages should be cleared, or some messages should not be cleared here, then please tell us.
|
pure virtual |
Notifies the device that it should close itself.
JimcppDevice::run() will always return false after closeDevice() was called.
|
pure virtual |
Creates a new default randomizer.
The default randomizer provides the random sequence known from previous Jimcpp versions and is the initial randomizer set on device creation.
|
pure virtual |
Get the current color format of the window.
|
pure virtual |
Provides access to the cursor control.
|
pure virtual |
Get the maximal elapsed time between 2 clicks to generate double- and tripleclicks for the mouse.
When return value is 0 no double- and tripleclicks will be generated.
|
pure virtual |
Provides access to the current event receiver.
|
pure virtual |
Provides access to the virtual file system.
|
pure virtual |
Provides access to the 2d user interface environment.
|
pure virtual |
Provides access to the message logger.
|
pure virtual |
Provides access to the operation system operator object.
The OS operator provides methods for getting system specific information and doing system specific operations, such as exchanging data with the clipboard or reading the operation system version.
|
pure virtual |
Provides access to the engine's currently set randomizer.
|
pure virtual |
Provides access to the scene manager.
|
pure virtual |
Provides access to the engine's timer.
The system time can be retrieved by it as well as the virtual time, which also can be manipulated.
|
pure virtual |
Get the type of the device.
This allows the user to check which windowing system is currently being used.
|
pure virtual |
Get the version of the engine.
The returned string will look like this: "1.2.3" or this: "1.2".
|
pure virtual |
Provides access to the video driver for drawing 3d and 2d geometry.
|
pure virtual |
Gets a list with all video modes available.
You only need a null driver (ED_NULL) to access those video modes. So you can get the available modes before starting any other video driver.
|
inlinestatic |
Check if a driver type is supported by the engine.
Even if true is returned the driver may not be available for a configuration requested when creating the device.
|
pure virtual |
Checks if the Jimcpp window is running in fullscreen mode.
|
pure virtual |
Returns if the window is active.
If the window is inactive, nothing needs to be drawn. So if you don't want to draw anything when the window is inactive, create your drawing loop this way:
|
pure virtual |
Checks if the Jimcpp window has the input focus.
|
pure virtual |
Checks if the Jimcpp window is minimized.
|
pure virtual |
Sends a user created event to the engine.
Is is usually not necessary to use this. However, if you are using an own input library for example for doing joystick input, you can use this to post key or mouse input events to the engine. Internally, this method only delegates the events further to the scene manager and the GUI environment.
|
pure virtual |
Runs the device.
Also increments the virtual timer by calling ITimer::tick();. You can prevent this by calling ITimer::stop(); before and ITimer::start() after calling JimcppDevice::run(). Returns false if device wants to be deleted. Use it in this way:
If you want the device to do nothing if the window is inactive (recommended), use the slightly enhanced code shown at isWindowActive().
Note if you are running Jimcpp inside an external, custom created window: Calling Device->run() will cause Jimcpp to dispatch windows messages internally. If you are running Jimcpp in your own custom window, you can also simply use your own message loop using GetMessage, DispatchMessage and whatever and simply don't use this method. But note that Jimcpp will not be able to fetch user input then. See jpp::SJimcppCreationParameters::WindowId for more information and example code.
|
pure virtual |
Set the maximal elapsed time between 2 clicks to generate doubleclicks for the mouse. It also affects tripleclick behavior.
When set to 0 no double- and tripleclicks will be generated.
timeMs | maximal time in milliseconds for two consecutive clicks to be recognized as double click |
|
pure virtual |
Sets a new user event receiver which will receive events from the engine.
Return true in IEventReceiver::OnEvent to prevent the event from continuing along the chain of event receivers. The path that an event takes through the system depends on its type. See jpp::EEVENT_TYPE for details.
receiver | New receiver to be used. |
|
pure virtual |
Sets the input receiving scene manager.
If set to null, the main scene manager (returned by GetSceneManager()) will receive the input
sceneManager | New scene manager to be used. |
|
pure virtual |
Sets a new randomizer.
r | Pointer to the new IRandomizer object. This object is grab()'ed by the engine and will be released upon the next setRandomizer call or upon device destruction. |
|
pure virtual |
Sets if the window should be resizable in windowed mode.
The default is false. This method only works in windowed mode.
resize | Flag whether the window should be resizable. |
|
pure virtual |
Sets the caption of the window.
text | New text of the window caption. |
|
pure virtual |
Resize the render window.
This will only work in windowed mode and is not yet supported on all systems. It does set the drawing/clientDC size of the window, the window decorations are added to that. You get the current window size with IVideoDriver::getScreenSize() (might be unified in future)
|
pure virtual |
Pause execution and let other processes to run for a specified amount of time.
It may not wait the full given time, as sleep may be interrupted
timeMs | Time to sleep for in milliseconds. |
pauseTimer | If true, pauses the device timer while sleeping |
|
pure virtual |
Cause the device to temporarily pause execution and let other processes run.
This should bring down processor usage without major performance loss for Jimcpp