diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-09 19:28:26 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-09 19:28:26 +0200 |
commit | 564d1b34e06bea9d3541fe059f906e98af927cb0 (patch) | |
tree | 359d6b3fbf7b113b1d6ac7ee815b0ee52dd8e290 /servers/rendering/renderer_rd/storage_rd/texture_storage.cpp | |
parent | de14109862edd8f8e27fa0f6ec92f5d7f2b9df7f (diff) | |
parent | c328676d960897abe6f00aaceee4c34801415940 (diff) | |
download | redot-engine-564d1b34e06bea9d3541fe059f906e98af927cb0.tar.gz |
Merge pull request #74711 from BastiaanOlij/add_texture_native_handle
Provide access to internal graphics handles for textures
Diffstat (limited to 'servers/rendering/renderer_rd/storage_rd/texture_storage.cpp')
-rw-r--r-- | servers/rendering/renderer_rd/storage_rd/texture_storage.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp index 8808d63a82..3d6092a9f6 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp @@ -1442,6 +1442,17 @@ RID TextureStorage::texture_get_rd_texture(RID p_texture, bool p_srgb) const { return (p_srgb && tex->rd_texture_srgb.is_valid()) ? tex->rd_texture_srgb : tex->rd_texture; } +uint64_t TextureStorage::texture_get_native_handle(RID p_texture, bool p_srgb) const { + Texture *tex = texture_owner.get_or_null(p_texture); + ERR_FAIL_COND_V(!tex, 0); + + if (p_srgb && tex->rd_texture_srgb.is_valid()) { + return RD::get_singleton()->texture_native_handle(tex->rd_texture_srgb); + } else { + return RD::get_singleton()->texture_native_handle(tex->rd_texture); + } +} + Ref<Image> TextureStorage::_validate_texture_format(const Ref<Image> &p_image, TextureToRDFormat &r_format) { Ref<Image> image = p_image->duplicate(); |