mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-06-08 03:13:52 +00:00
Added _layer parameter to bgfx::readTexture for texture array/cubemap readback. Closes #3235. (#3737)
This commit is contained in:
committed by
GitHub
parent
944ccff1e4
commit
e92490c3f7
@@ -3681,10 +3681,11 @@ public static class bgfx
|
||||
///
|
||||
/// <param name="_handle">Texture handle.</param>
|
||||
/// <param name="_data">Destination buffer.</param>
|
||||
/// <param name="_layer">Texture layer.</param>
|
||||
/// <param name="_mip">Mip level.</param>
|
||||
///
|
||||
[LinkName("bgfx_read_texture")]
|
||||
public static extern uint32 read_texture(TextureHandle _handle, void* _data, uint8 _mip);
|
||||
public static extern uint32 read_texture(TextureHandle _handle, void* _data, uint16 _layer, uint8 _mip);
|
||||
|
||||
/// <summary>
|
||||
/// Set texture debug name.
|
||||
|
||||
@@ -2601,8 +2601,9 @@ extern fn void update_texture_cube(TextureHandle _handle, ushort _layer, char _s
|
||||
//
|
||||
// _handle : `Texture handle.`
|
||||
// _data : `Destination buffer.`
|
||||
// _layer : `Texture layer.`
|
||||
// _mip : `Mip level.`
|
||||
extern fn uint read_texture(TextureHandle _handle, void* _data, char _mip) @cname("bgfx_read_texture");
|
||||
extern fn uint read_texture(TextureHandle _handle, void* _data, ushort _layer, char _mip) @cname("bgfx_read_texture");
|
||||
|
||||
// Set texture debug name.
|
||||
// _handle : `Texture handle.`
|
||||
@@ -3146,7 +3147,7 @@ extern fn void encoder_set_texture(Encoder* _this, char _stage, UniformHandle _s
|
||||
// _firstMip : `First (most detailed) mip level.`
|
||||
// _numMips : `Number of mip levels.`
|
||||
// _flags : `Texture sampling mode. Default value UINT32_MAX uses texture sampling settings from the texture. - `BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP]` - Mirror or clamp to edge wrap mode. - `BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC]` - Point or anisotropic sampling.`
|
||||
extern fn void encoder_set_texture_view(Encoder* _this, char _stage, UniformHandle _sampler, TextureHandle _handle, ushort _firstLayer, ushort _numLayers, char _firstMip, char _numMips, uint _flags) @extern("bgfx_encoder_set_texture_view");
|
||||
extern fn void encoder_set_texture_view(Encoder* _this, char _stage, UniformHandle _sampler, TextureHandle _handle, ushort _firstLayer, ushort _numLayers, char _firstMip, char _numMips, uint _flags) @cname("bgfx_encoder_set_texture_view");
|
||||
|
||||
// Submit an empty primitive for rendering. Uniforms and draw state
|
||||
// will be applied but no geometry will be submitted. Useful in cases
|
||||
@@ -3575,7 +3576,7 @@ extern fn void set_texture(char _stage, UniformHandle _sampler, TextureHandle _h
|
||||
// _firstMip : `First (most detailed) mip level.`
|
||||
// _numMips : `Number of mip levels.`
|
||||
// _flags : `Texture sampling mode. Default value UINT32_MAX uses texture sampling settings from the texture. - `BGFX_SAMPLER_[U/V/W]_[MIRROR/CLAMP]` - Mirror or clamp to edge wrap mode. - `BGFX_SAMPLER_[MIN/MAG/MIP]_[POINT/ANISOTROPIC]` - Point or anisotropic sampling.`
|
||||
extern fn void set_texture_view(char _stage, UniformHandle _sampler, TextureHandle _handle, ushort _firstLayer, ushort _numLayers, char _firstMip, char _numMips, uint _flags) @extern("bgfx_set_texture_view");
|
||||
extern fn void set_texture_view(char _stage, UniformHandle _sampler, TextureHandle _handle, ushort _firstLayer, ushort _numLayers, char _firstMip, char _numMips, uint _flags) @cname("bgfx_set_texture_view");
|
||||
|
||||
// Submit an empty primitive for rendering. Uniforms and draw state
|
||||
// will be applied but no geometry will be submitted.
|
||||
|
||||
@@ -3634,10 +3634,11 @@ public static partial class bgfx
|
||||
///
|
||||
/// <param name="_handle">Texture handle.</param>
|
||||
/// <param name="_data">Destination buffer.</param>
|
||||
/// <param name="_layer">Texture layer.</param>
|
||||
/// <param name="_mip">Mip level.</param>
|
||||
///
|
||||
[DllImport(DllName, EntryPoint="bgfx_read_texture", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern unsafe uint read_texture(TextureHandle _handle, void* _data, byte _mip);
|
||||
public static extern unsafe uint read_texture(TextureHandle _handle, void* _data, ushort _layer, byte _mip);
|
||||
|
||||
/// <summary>
|
||||
/// Set texture debug name.
|
||||
|
||||
@@ -9,7 +9,7 @@ import bindbc.common.types: c_int64, c_uint64, va_list;
|
||||
import bindbc.bgfx.config;
|
||||
static import bgfx.impl;
|
||||
|
||||
enum uint apiVersion = 144;
|
||||
enum uint apiVersion = 145;
|
||||
|
||||
alias ViewID = ushort;
|
||||
|
||||
@@ -2832,9 +2832,10 @@ mixin(joinFnBinds((){
|
||||
Params:
|
||||
handle = Texture handle.
|
||||
data = Destination buffer.
|
||||
layer = Texture layer.
|
||||
mip = Mip level.
|
||||
*/
|
||||
{q{uint}, q{readTexture}, q{TextureHandle handle, void* data, ubyte mip=0}, ext: `C++, "bgfx"`},
|
||||
{q{uint}, q{readTexture}, q{TextureHandle handle, void* data, ushort layer=0, ubyte mip=0}, ext: `C++, "bgfx"`},
|
||||
|
||||
/**
|
||||
* Set texture debug name.
|
||||
|
||||
@@ -2901,11 +2901,12 @@ extern fn bgfx_update_texture_cube(_handle: TextureHandle, _layer: u16, _side: u
|
||||
///
|
||||
/// <param name="_handle">Texture handle.</param>
|
||||
/// <param name="_data">Destination buffer.</param>
|
||||
/// <param name="_layer">Texture layer.</param>
|
||||
/// <param name="_mip">Mip level.</param>
|
||||
pub inline fn readTexture(_handle: TextureHandle, _data: ?*anyopaque, _mip: u8) u32 {
|
||||
return bgfx_read_texture(_handle, _data, _mip);
|
||||
pub inline fn readTexture(_handle: TextureHandle, _data: ?*anyopaque, _layer: u16, _mip: u8) u32 {
|
||||
return bgfx_read_texture(_handle, _data, _layer, _mip);
|
||||
}
|
||||
extern fn bgfx_read_texture(_handle: TextureHandle, _data: ?*anyopaque, _mip: u8) u32;
|
||||
extern fn bgfx_read_texture(_handle: TextureHandle, _data: ?*anyopaque, _layer: u16, _mip: u8) u32;
|
||||
|
||||
/// Set texture debug name.
|
||||
/// <param name="_handle">Texture handle.</param>
|
||||
|
||||
Reference in New Issue
Block a user