vsg: vsgAndroid::Android_Window Class Reference

vsg 1.1.3 VulkanSceneGraph library

Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vsgAndroid::Android_Window Class Reference

`#include <Android_Window.h>`

Inheritance diagram for vsgAndroid::Android_Window:
[legend]
Collaboration diagram for vsgAndroid::Android_Window:
[legend]

## Public Member Functions
| Android_Window (vsg::ref_ptr< vsg::WindowTraits > traits)
| Android_Window (const Android_Window &)=delete
Android_Window | operator= (const Android_Window &)=delete
const char * | instanceExtensionSurfaceName () const override
bool | valid () const override
bool | pollEvents (vsg::UIEvents &events) override
| get the list of events since the last pollEvents() call by splicing bufferEvents with polled windowing events.
void | resize () override
bool | handleAndroidInputEvent (AInputEvent *anEvent)
Public Member Functions inherited from vsg::Inherit< vsg::Window, Android_Window >
| Inherit (Args &&... args)
std::size_t | sizeofObject () const noexcept override
const char * | className () const noexcept override
const std::type_info & | type_info () const noexcept override
bool | is_compatible (const std::type_info &type) const noexcept override
int | compare (const Object &rhs) const override
void | accept (Visitor &visitor) override
void | accept (ConstVisitor &visitor) const override
void | accept (RecordTraversal &visitor) const override
Public Member Functions inherited from vsg::Window
| Window (const Window &)=delete
Window & | operator= (const Window &)=delete
virtual bool | visible () const
virtual void | releaseWindow ()
virtual void | releaseConnection ()
ref_ptr< WindowTraits > | traits ()
const ref_ptr< WindowTraits > | traits () const
const VkExtent2D & | extent2D () const
vec4 & | clearColor ()
const vec4 & | clearColor () const
VkSurfaceFormatKHR | surfaceFormat ()
VkFormat | depthFormat ()
VkSampleCountFlagBits | framebufferSamples () const
void | setInstance (ref_ptr< Instance > instance)
ref_ptr< Instance > | getInstance ()
ref_ptr< Instance > | getOrCreateInstance ()
void | setSurface (ref_ptr< Surface > surface)
ref_ptr< Surface > | getSurface ()
ref_ptr< Surface > | getOrCreateSurface ()
void | setPhysicalDevice (ref_ptr< PhysicalDevice > physicalDevice)
ref_ptr< PhysicalDevice > | getPhysicalDevice ()
ref_ptr< PhysicalDevice > | getOrCreatePhysicalDevice ()
void | setDevice (ref_ptr< Device > device)
ref_ptr< Device > | getDevice ()
ref_ptr< Device > | getOrCreateDevice ()
void | setRenderPass (ref_ptr< RenderPass > renderPass)
ref_ptr< RenderPass > | getRenderPass ()
ref_ptr< RenderPass > | getOrCreateRenderPass ()
ref_ptr< Swapchain > | getSwapchain ()
ref_ptr< Swapchain > | getOrCreateSwapchain ()
ref_ptr< Image > | getDepthImage ()
ref_ptr< Image > | getOrCreateDepthImage ()
ref_ptr< ImageView > | getDepthImageView ()
ref_ptr< ImageView > | getOrCreateDepthImageView ()
size_t | numFrames () const
ref_ptr< ImageView > | imageView (size_t i)
const ref_ptr< ImageView > | imageView (size_t i) const
ref_ptr< Framebuffer > | framebuffer (size_t i)
const ref_ptr< Framebuffer > | framebuffer (size_t i) const
VkResult | acquireNextImage (uint64_t timeout=std::numeric_limits< uint64_t >::max())
| call vkAquireNextImageKHR to find the next imageIndex of the swapchain images/framebuffers
size_t | imageIndex (size_t relativeFrameIndex=0) const
| get the image index for specified relative frame index, a 0 value is the current frame being rendered, 1 is the previous frame, 2 is the frame before that.
bool | debugLayersEnabled () const
Frame & | frame (size_t i)
Frames & | frames ()
Public Member Functions inherited from vsg::Inherit< Object, Window >
| Inherit (Args &&... args)
Public Member Functions inherited from vsg::Object
| Object (const Object &object, const CopyOp &copyop={})
Object & | operator= (const Object &)
template<class T >
T * | cast ()
template<class T >
const T * | cast () const
virtual ref_ptr< Object > | clone (const CopyOp &copyop={}) const
virtual void | traverse (Visitor &)
virtual void | traverse (ConstVisitor &) const
virtual void | traverse (RecordTraversal &) const
virtual void | read (Input &input)
virtual void | write (Output &output) const
void | ref () const noexcept
void | unref () const noexcept
void | unref_nodelete () const noexcept
unsigned int | referenceCount () const noexcept
template<typename T >
void | setValue (const std::string &key, const T &value)
void | setValue (const std::string &key, const char *value)
| specialization of setValue to handle passing C strings
template<typename T >
bool | getValue (const std::string &key, T &value) const
| get specified value type, return false if value associated with key is not assigned or is not the correct type
void | setObject (const std::string &key, ref_ptr< Object > object)
| assign an Object associated with key
Object * | getObject (const std::string &key)
| get Object pointer associated with key, return nullptr if no object associated with key has been assigned
const Object * | getObject (const std::string &key) const
| get const Object pointer associated with key, return nullptr if no object associated with key has been assigned
template<class T >
T * | getObject (const std::string &key)
| get object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
template<class T >
const T * | getObject (const std::string &key) const
| get const object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
ref_ptr< Object > | getRefObject (const std::string &key)
| get ref_ptr<Object> associated with key, return nullptr if no object associated with key has been assigned
ref_ptr< const Object > | getRefObject (const std::string &key) const
| get ref_ptr<const Object> pointer associated with key, return nullptr if no object associated with key has been assigned
template<class T >
ref_ptr< T > | getRefObject (const std::string &key)
| get ref_ptr<T> of specified type associated with key, return nullptr if no object associated with key has been assigned
template<class T >
const ref_ptr< const T > | getRefObject (const std::string &key) const
| get ref_ptr<const T> of specified type associated with key, return nullptr if no object associated with key has been assigned
void | removeObject (const std::string &key)
| remove meta object or value associated with key
Auxiliary * | getOrCreateAuxiliary ()
Auxiliary * | getAuxiliary ()
const Auxiliary * | getAuxiliary () const

## Protected Member Functions
void | _initSurface () override
Protected Member Functions inherited from vsg::Window
| Window (ref_ptr< WindowTraits > traits)
void | _initFormats ()
void | _initInstance ()
void | _initPhysicalDevice ()
void | _initDevice ()
void | _initRenderPass ()
void | _initSwapchain ()
virtual void | clear ()
void | share (ref_ptr< Device > device)
void | buildSwapchain ()
Protected Member Functions inherited from vsg::Object
virtual void | _attemptDelete () const
void | setAuxiliary (Auxiliary *auxiliary)

## Protected Attributes
ANativeWindow * | _window
int64_t | _first_android_timestamp = 0
vsg::clock::time_point | _first_android_time_point
vsg::ref_ptr< KeyboardMap > | _keyboard
Protected Attributes inherited from vsg::Window
ref_ptr< WindowTraits > | _traits
VkExtent2D | _extent2D
vec4 | _clearColor
VkSurfaceFormatKHR | _imageFormat
VkFormat | _depthFormat
VkSampleCountFlagBits | _framebufferSamples
ref_ptr< Instance > | _instance
ref_ptr< PhysicalDevice > | _physicalDevice
ref_ptr< Device > | _device
ref_ptr< Surface > | _surface
ref_ptr< Swapchain > | _swapchain
ref_ptr< RenderPass > | _renderPass
ref_ptr< Image > | _depthImage
ref_ptr< ImageView > | _depthImageView
ref_ptr< Image > | _multisampleImage
ref_ptr< ImageView > | _multisampleImageView
ref_ptr< Image > | _multisampleDepthImage
ref_ptr< ImageView > | _multisampleDepthImageView
ref_ptr< Semaphore > | _availableSemaphore
Frames | _frames
std::vector< size_t > | _indices

## Additional Inherited Members
Public Types inherited from vsg::Window
using | Frames = std::vector<Frame>
Static Public Member Functions inherited from vsg::Inherit< vsg::Window, Android_Window >
static ref_ptr< Android_Window > | create (Args &&... args)
static ref_ptr< Android_Window > | create_if (bool flag, Args &&... args)
Static Public Member Functions inherited from vsg::Window
static ref_ptr< Window > | create (vsg::ref_ptr< WindowTraits > traits)
| static Window::create(traits) method creates a platform specific Window instance based on specified window traits.
Static Public Member Functions inherited from vsg::Inherit< Object, Window >
static ref_ptr< Window > | create (Args &&... args)
static ref_ptr< Window > | create_if (bool flag, Args &&... args)
Static Public Member Functions inherited from vsg::Object
static ref_ptr< Object > | create ()
static ref_ptr< Object > | create_if (bool flag)
static void * | operator new (std::size_t count)
| provide new and delete to enable custom memory management via the vsg::Allocator singleton, using the MEMORY_AFFINTY_OBJECTS
static void | operator delete (void *ptr)
Public Attributes inherited from vsg::Window
UIEvents | bufferedEvents
| events buffered since the last pollEvents.

## Detailed Description

Android_Window implements Android specific window creation, event handling and vulkan Surface setup.

In order to initialise the window, an ANativeWindow* handle must be provided through WindowTraits, provided via the value "nativeWindow".

// void android_main(struct android_app* app)
auto traits = vsg::WindowTraits::create();
traits->setValue("nativeWindow", app->window);
auto window = vsg::Window::create(traits);
vsg::Window::create
static ref_ptr< Window > create(vsg::ref_ptr< WindowTraits > traits)
static Window::create(traits) method creates a platform specific Window instance based on specified w...

This window handle may also be provided through WindowTraits::nativeWindow however due to the way Android loads shared libraries this is likely to encounter duplicate typeinfo for ANativeWindow, and as a result can throw a std::bad_any_cast on later NDK versions and some system architectures.

## Member Function Documentation

## ◆ _initSurface()

void vsgAndroid::Android_Window::_initSurface | ( |  | ) |
| overrideprotectedvirtual

Implements vsg::Window.

## ◆ instanceExtensionSurfaceName()

const char * vsgAndroid::Android_Window::instanceExtensionSurfaceName | ( |  | ) | const
| inlineoverridevirtual

Implements vsg::Window.

## ◆ pollEvents()

bool vsgAndroid::Android_Window::pollEvents | ( | vsg::UIEvents & | events | ) |
| overridevirtual

get the list of events since the last pollEvents() call by splicing bufferEvents with polled windowing events.

Reimplemented from vsg::Window.

## ◆ resize()

void vsgAndroid::Android_Window::resize | ( |  | ) |
| overridevirtual

Reimplemented from vsg::Window.

## ◆ valid()

bool vsgAndroid::Android_Window::valid | ( |  | ) | const
| inlineoverridevirtual

Reimplemented from vsg::Window.

The documentation for this class was generated from the following file:

- include/vsg/platform/android/Android_Window.h