OGRE-Next: Ogre::VulkanTextureGpuWindow Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Public Member Functions | List of all members
Ogre::VulkanTextureGpuWindow Class Referencefinal

`#include <OgreVulkanTextureGpuWindow.h>`

Inheritance diagram for Ogre::VulkanTextureGpuWindow:
[legend]

## Public Member Functions
| VulkanTextureGpuWindow (GpuPageOutStrategy::GpuPageOutStrategy pageOutStrategy, VaoManager *vaoManager, IdString name, uint32 textureFlags, TextureTypes::TextureTypes initialType, TextureGpuManager *textureManager, VulkanWindowSwapChainBased *window)
| ~VulkanTextureGpuWindow () override
bool | _isDataReadyImpl () const override
| For internal use.
void | _notifyTextureSlotChanged (const TexturePool *newPool, uint16 slice) override
void | _setCurrentSwapchain (VkImage image, uint32 swapchainIdx)
void | _setToDisplayDummyTexture () override
uint32 | getCurrentSwapchainIdx () const
void | getCustomAttribute (IdString name, void *pData) override
VkSemaphore | getImageAcquiredSemaphore ()
void | getSubsampleLocations (vector< Vector2 >::type locations) override
| Get the MSAA subsample locations.
VkImage | getWindowFinalTextureName (size_t idx) const
size_t | getWindowNumSurfaces () const
void | notifyDataIsReady () override
| Notifies it is safe to use the real data. Everything has been uploaded.
void | setTextureType (TextureTypes::TextureTypes textureType) override
void | swapBuffers () override
| Only valid for TextureGpu classes.
Public Member Functions inherited from Ogre::VulkanTextureGpuRenderTarget
| VulkanTextureGpuRenderTarget (GpuPageOutStrategy::GpuPageOutStrategy pageOutStrategy, VaoManager *vaoManager, IdString name, uint32 textureFlags, TextureTypes::TextureTypes initialType, TextureGpuManager *textureManager)
| ~VulkanTextureGpuRenderTarget () override
void | _setDepthBufferDefaults (uint16 depthBufferPoolId, bool preferDepthTexture, PixelFormatGpu desiredDepthBufferFormat) override
| These 3 values are used as defaults for the compositor to use, but they may be explicitly overriden by a RenderPassDescriptor.
uint16 | getDepthBufferPoolId () const override
PixelFormatGpu | getDesiredDepthBufferFormat () const override
OrientationMode | getOrientationMode () const override
bool | getPreferDepthTexture () const override
void | setOrientationMode (OrientationMode orientationMode) override
| Sets the given orientation.
Public Member Functions inherited from Ogre::VulkanTextureGpu
| VulkanTextureGpu (GpuPageOutStrategy::GpuPageOutStrategy pageOutStrategy, VaoManager *vaoManager, IdString name, uint32 textureFlags, TextureTypes::TextureTypes initialType, TextureGpuManager *textureManager)
| ~VulkanTextureGpu () override
void | _autogenerateMipmaps (CopyEncTransitionMode::CopyEncTransitionMode transitionMode=CopyEncTransitionMode::Auto) override
| Tells the API to let the HW autogenerate mipmaps.
VkImageView | _createView (PixelFormatGpu pixelFormat, uint8 mipLevel, uint8 numMipmaps, uint16 arraySlice, bool cubemapsAs2DArrays, bool forUav, uint32 numSlices=0u, VkImage imageOverride=0) const
void | _setNextLayout (ResourceLayout::Layout layout) override
| Sets the layout the texture should be transitioned to after the next copy operation (once the copy encoder gets closed)
void | copyTo (TextureGpu *dst, const TextureBox &dstBox, uint8 dstMipLevel, const TextureBox &srcBox, uint8 srcMipLevel, bool keepResolvedTexSynced=true, CopyEncTransitionMode::CopyEncTransitionMode srcTransitionMode=CopyEncTransitionMode::Auto, CopyEncTransitionMode::CopyEncTransitionMode dstTransitionMode=CopyEncTransitionMode::Auto) override
VkImageView | createView () const
VkImageView | createView (const DescriptorSetTexture2::TextureSlot &texSlot, bool bUseCache=true) const
VkImageView | createView (DescriptorSetUav::TextureSlot texSlot, bool bUseCache=true)
void | destroyView (DescriptorSetTexture2::TextureSlot texSlot, VkImageView imageView)
void | destroyView (DescriptorSetUav::TextureSlot texSlot, VkImageView imageView)
void | destroyView (VkImageView imageView)
ResourceLayout::Layout | getCurrentLayout () const override
VkImageView | getDefaultDisplaySrv () const
VkImage | getDisplayTextureName () const
VkImage | getFinalTextureName () const
VkImageSubresourceRange | getFullSubresourceRange () const
VkImageMemoryBarrier | getImageMemoryBarrier () const
| Returns a fresh VkImageMemoryBarrier filled with common data.
VkImageViewType | getInternalVulkanTextureViewType () const
VkImage | getMsaaFramebufferName () const
VkImageType | getVulkanTextureType () const
PixelFormatGpu | getWorkaroundedPixelFormat (const PixelFormatGpu pixelFormat) const
Public Member Functions inherited from Ogre::TextureGpu
| TextureGpu (GpuPageOutStrategy::GpuPageOutStrategy pageOutStrategy, VaoManager *vaoManager, IdString name, uint32 textureFlags, TextureTypes::TextureTypes initialType, TextureGpuManager *textureManager)
| ~TextureGpu () override
uint8 * | _getSysRamCopy (uint8 mipLevel)
TextureBox | _getSysRamCopyAsBox (uint8 mipLevel)
size_t | _getSysRamCopyBytesPerImage (uint8 mipLevel)
| Note: Returns non-zero even if there is no system ram copy.
uint32 | _getSysRamCopyBytesPerRow (uint8 mipLevel)
| Note: Returns non-zero even if there is no system ram copy.
bool | _isManualTextureFlagPresent () const
void | _notifySysRamDownloadIsReady (uint8 *sysRamPtr, bool resyncOnly)
| Do not call directly.
void | _resetTextureManager ()
void | _resolveTo (TextureGpu *resolveTexture)
| Immediately resolves this texture to the resolveTexture argument.
void | _setSampleDescription (SampleDescription desc, SampleDescription validatedSampleDesc)
| For internal use.
void | _setSourceType (uint8 type)
void | _syncGpuResidentToSystemRam ()
| Forces downloading data from GPU to CPU, usually because the data on GPU changed and we're in strategy AlwaysKeepSystemRamCopy.
void | _transitionTo (GpuResidency::GpuResidency newResidency, uint8 *sysRamCopy, bool autoDeleteSysRamCopy=true)
| This function may be called manually (if user is manually managing a texture) or automatically (e.g.
void | addListener (TextureGpuListener *listener)
bool | allowsAutoMipmaps () const
void | copyContentsToMemory (TextureBox src, TextureBox dst, PixelFormatGpu dstFormat, bool automaticResolve=true)
| Writes the current contents of the render target to the memory.
void | copyParametersFrom (TextureGpu *src)
ResourceLayout::Layout | getDefaultLayout (bool bIgnoreDiscardableFlag=false) const
uint32 | getDepth () const
| For TypeCube & TypeCubeArray, this value returns 1.
uint32 | getDepthOrSlices () const
TextureBox | getEmptyBox (uint8 mipLevel)
uint32 | getHeight () const
uint32 | getInternalHeight () const
| Real API height accounting for TextureGpu::getOrientationMode. See getInternalWidth.
uint16 | getInternalSliceStart () const
TextureTypes::TextureTypes | getInternalTextureType () const
uint32 | getInternalWidth () const
| Real API width accounting for TextureGpu::getOrientationMode If orientation mode is 90° or 270° then getInternalWidth returns the height and getInternalHeight returns the width.
const vector< TextureGpuListener * >::type & | getListeners () const
String | getNameStr () const override
| Note: This returns the alias name of the texture.
uint8 | getNumMipmaps () const
uint32 | getNumSlices () const
| For TypeCube this value returns 6.
PixelFormatGpu | getPixelFormat () const
virtual String | getRealResourceNameStr () const
| Returns the real name (e.g. disk in file) of the resource.
SampleDescription | getRequestedSampleDescription () const
| Returns original requested sample description, i.e. the raw input to setSampleDescription.
virtual String | getResourceGroupStr () const
SampleDescription | getSampleDescription () const
| Returns effective sample description supported by the API.
String | getSettingsDesc () const
size_t | getSizeBytes () const
| Returns total size in bytes used in GPU by this texture (not by its pool) including mipmaps.
uint8 | getSourceType () const
| This setting is for where the texture is created, e.g.
TextureGpuManager * | getTextureManager () const
const TexturePool * | getTexturePool () const
uint32 | getTexturePoolId () const
TextureTypes::TextureTypes | getTextureType () const
uint32 | getWidth () const
bool | hasAutomaticBatching () const
bool | hasAutoMipmapAuto () const
bool | hasEquivalentParameters (TextureGpu *other) const
bool | hasMsaaExplicitResolves () const
bool | isDataReady () const
| True if this texture is fully ready to be used for displaying.
bool | isDiscardableContent () const
bool | isManualTexture () const
bool | isMetadataReady () const
| It is threadsafe to call this function from main thread.
virtual bool | isMsaaPatternSupported (MsaaPatterns::MsaaPatterns pattern)
bool | isMultisample () const
virtual bool | isOpenGLRenderWindow () const
| OpenGL RenderWindows are a bit specific:
bool | isPoolOwner () const
bool | isReinterpretable () const
bool | isRenderToTexture () const
bool | isRenderWindowSpecific () const
bool | isTexture () const
bool | isTextureGpu () const override
bool | isUav () const
void | notifyAllListenersTextureChanged (uint32 reason, void *extraData=0)
bool | prefersLoadingFromFileAsSRGB () const
void | removeListener (TextureGpuListener *listener)
bool | requiresTextureFlipping () const
void | scheduleReupload (Image2 *image=0, bool autoDeleteImage=true, bool bSkipMultiload=false)
| There are times where you want to reload a texture again (e.g.
void | scheduleTransitionTo (GpuResidency::GpuResidency nextResidency, Image2 *image=0, bool autoDeleteImage=true, bool bSkipMultiload=false)
| Same as unsafeScheduleTransitionTo, but first checks if we're already in the residency state we want to go to, or if it has already been scheduled; thus it can be called multiple times.
void | setNumMipmaps (uint8 numMipmaps)
void | setPixelFormat (PixelFormatGpu pixelFormat)
| Sets the pixel format.
void | setResolution (uint32 width, uint32 height, uint32 depthOrSlices=1u)
void | setSampleDescription (SampleDescription desc)
void | setTexturePoolId (uint32 poolId)
| 2D Texture with automatic batching will be merged with other textures into the same pool as one big 2D Array texture behind the scenes.
virtual bool | supportsAsDepthBufferFor (TextureGpu *colourTarget) const
void | unsafeScheduleTransitionTo (GpuResidency::GpuResidency nextResidency, Image2 *image=0, bool autoDeleteImage=true, bool bSkipMultiload=false)
| Schedules an async transition in residency.
void | waitForData ()
| Blocks main thread until data is ready.
void | waitForMetadata ()
| Blocks main thread until metadata is ready.
void | writeContentsToFile (const String &filename, uint8 minMip, uint8 maxMip, bool automaticResolve=true)
| Writes the current contents of the render target to the named file.
Public Member Functions inherited from Ogre::GpuTrackedResource
virtual | ~GpuTrackedResource ()
Public Member Functions inherited from Ogre::GpuResource
| GpuResource (GpuPageOutStrategy::GpuPageOutStrategy pageOutStrategy, VaoManager *vaoManager, IdString name)
virtual | ~GpuResource ()
void | _addPendingResidencyChanges (uint32 value)
void | _setNextResidencyStatus (GpuResidency::GpuResidency nextResidency)
GpuPageOutStrategy::GpuPageOutStrategy | getGpuPageOutStrategy () const
IdString | getName () const
GpuResidency::GpuResidency | getNextResidencyStatus () const
| When getResidencyStatus() != getNextResidencyStatus(), residency changes happen in the main thread, while some preparation may be happening in the background.
uint32 | getPendingResidencyChanges () const
| Returns the number of pending residency changes.
GpuResidency::GpuResidency | getResidencyStatus () const

## Additional Inherited Members
Public Attributes inherited from Ogre::VulkanTextureGpu
VkImageLayout | mCurrLayout
| The current layout we're in. Including any internal stuff.
VkImageLayout | mNextLayout
| The layout we're expected to be when rendering or doing compute, rather than when doing internal stuff (e.g.
Static Public Attributes inherited from Ogre::TextureGpu
static OrientationMode | msDefaultOrientationMode
| PUBLIC VARIABLE.
static const IdString | msFinalTextureBuffer
static const IdString | msMsaaTextureBuffer

## Constructor & Destructor Documentation

## ◆ VulkanTextureGpuWindow()

Ogre::VulkanTextureGpuWindow::VulkanTextureGpuWindow | ( | GpuPageOutStrategy::GpuPageOutStrategy | pageOutStrategy,
|  | VaoManager * | vaoManager,
|  | IdString | name,
|  | uint32 | textureFlags,
|  | TextureTypes::TextureTypes | initialType,
|  | TextureGpuManager * | textureManager,
|  | VulkanWindowSwapChainBased * | window )

## ◆ ~VulkanTextureGpuWindow()

Ogre::VulkanTextureGpuWindow::~VulkanTextureGpuWindow | ( |  | ) |
| override

## Member Function Documentation

## ◆ _isDataReadyImpl()

bool Ogre::VulkanTextureGpuWindow::_isDataReadyImpl | ( |  | ) | const
| overridevirtual

For internal use.

Do not call directly.

This function is the same isDataReady except it ignores pending residency changes, which is important when TextureGpuManager needs to know this information but the TextureGpu is transitioning (thus mPendingResidencyChanges is in an inconsistent state)

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ _notifyTextureSlotChanged()

void Ogre::VulkanTextureGpuWindow::_notifyTextureSlotChanged | ( | const TexturePool * | newPool,
|  | uint16 | slice )
| overridevirtual

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ _setCurrentSwapchain()

void Ogre::VulkanTextureGpuWindow::_setCurrentSwapchain | ( | VkImage | image,
|  | uint32 | swapchainIdx )

## ◆ _setToDisplayDummyTexture()

void Ogre::VulkanTextureGpuWindow::_setToDisplayDummyTexture | ( |  | ) |
| overridevirtual

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ getCurrentSwapchainIdx()

uint32 Ogre::VulkanTextureGpuWindow::getCurrentSwapchainIdx | ( |  | ) | const
| inline

## ◆ getCustomAttribute()

void Ogre::VulkanTextureGpuWindow::getCustomAttribute | ( | IdString | name,
|  | void * | pData )
| overridevirtual

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ getImageAcquiredSemaphore()

VkSemaphore Ogre::VulkanTextureGpuWindow::getImageAcquiredSemaphore | ( |  | ) |

## ◆ getSubsampleLocations()

void Ogre::VulkanTextureGpuWindow::getSubsampleLocations | ( | vector< Vector2 >::type | locations | ) |
| overridevirtual

Get the MSAA subsample locations.

mSampleDescription.pattern must not be MsaaPatterns::Undefined.

Parameters

  locations | Outputs an array with the locations for each subsample. Values are in range [-1; 1]

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ getWindowFinalTextureName()

VkImage Ogre::VulkanTextureGpuWindow::getWindowFinalTextureName | ( | size_t | idx | ) | const

## ◆ getWindowNumSurfaces()

size_t Ogre::VulkanTextureGpuWindow::getWindowNumSurfaces | ( |  | ) | const

## ◆ notifyDataIsReady()

void Ogre::VulkanTextureGpuWindow::notifyDataIsReady | ( |  | ) |
| overridevirtual

Notifies it is safe to use the real data. Everything has been uploaded.

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ setTextureType()

void Ogre::VulkanTextureGpuWindow::setTextureType | ( | TextureTypes::TextureTypes | textureType | ) |
| overridevirtual

Reimplemented from Ogre::VulkanTextureGpu.

## ◆ swapBuffers()

void Ogre::VulkanTextureGpuWindow::swapBuffers | ( |  | ) |
| overridevirtual

Only valid for TextureGpu classes.

TODO: This may be moved to a different class.

Reimplemented from Ogre::TextureGpu.

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

- OgreVulkanTextureGpuWindow.h