Dynamically resizable texture 2D array
All other methods are not thread-safe and must be externally synchronized: they must not race with each other or with Update() or Resize().
Resizes the texture array to the specified number of slices.
- Parameters
-
| [in] | pDevice | - Render device that will be used create new internal texture. This parameter may be null (see remarks). |
| [in] | pContext | - Device context that will be used to copy existing contents to the new texture (when using non-sparse texture), or commit new memory tiles (when using sparse texture). This parameter may be null (see remarks). |
| [in] | NewArraySize | - The new number of slices in the texture array. |
| [in] | DiscardContent | - Whether to discard previous texture content (for non-sparse textures). |
- Returns
- Pointer to the new texture object after resize.
The method operation depends on which of pDevice and pContext parameters are not null:
- Both pDevice and pContext are not null: internal texture is created (if necessary) and existing contents is copied (for non-sparse textures). Update() may be called with both pDevice and pContext being null.
- pDevice is not null, pContext is null: internal texture or additional memory pages are created, but existing contents is not copied and memory tiles are not bound. An application must provide non-null device context when calling Update().
- Both pDevice and pContext are null: internal texture or memory pages are not created. An application must provide non-null device and device context when calling Update().
Typically pContext is null when the method is called from a worker thread.
If NewArraySize is zero, internal buffer will be released.
Updates the internal texture object.
- Parameters
-
| [in] | pDevice | - Render device that will be used to create a new texture, if necessary (see remarks). |
| [in] | pContext | - Device context that will be used to copy existing texture contents (when using non-sparse texture), or bind memory tiles (when using sparse textures), if necessary (see remarks). |
- Returns
- A pointer to the texture object.
If the texture has been resized, but internal texture object has not been initialized, pDevice and pContext must not be null.
If the texture does not need to be updated (PendingUpdate() returns false), both pDevice and pContext may be null.