mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-07 08:08:50 +00:00
Change path
This commit is contained in:
Vendored
+143
@@ -0,0 +1,143 @@
|
||||
package vendor_openexr
|
||||
|
||||
foreign import lib "OpenEXRCore-3_1.lib"
|
||||
|
||||
import "core:c"
|
||||
|
||||
/**
|
||||
* Struct describing raw data information about a chunk.
|
||||
*
|
||||
* A chunk is the generic term for a pixel data block in an EXR file,
|
||||
* as described in the OpenEXR File Layout documentation. This is
|
||||
* common between all different forms of data that can be stored.
|
||||
*/
|
||||
chunk_info_t :: struct {
|
||||
idx: i32,
|
||||
|
||||
/** For tiles, this is the tilex; for scans it is the x. */
|
||||
start_x: i32,
|
||||
/** For tiles, this is the tiley; for scans it is the scanline y. */
|
||||
start_y: i32,
|
||||
height: i32, /**< For this chunk. */
|
||||
width: i32, /**< For this chunk. */
|
||||
|
||||
level_x: u8, /**< For tiled files. */
|
||||
level_y: u8, /**< For tiled files. */
|
||||
|
||||
type: u8,
|
||||
compression: u8,
|
||||
|
||||
data_offset: u64,
|
||||
packed_size: u64,
|
||||
unpacked_size: u64,
|
||||
|
||||
sample_count_data_offset: u64,
|
||||
sample_count_table_size: u64,
|
||||
}
|
||||
|
||||
@(link_prefix="exr_", default_calling_convention="c")
|
||||
foreign lib {
|
||||
read_scanline_chunk_info :: proc(ctxt: const_context_t, part_index: c.int, y: c.int, cinfo: ^chunk_info_t) -> result_t ---
|
||||
|
||||
read_tile_chunk_info :: proc(
|
||||
ctxt: const_context_t,
|
||||
part_index: c.int,
|
||||
tilex: c.int,
|
||||
tiley: c.int,
|
||||
levelx: c.int,
|
||||
levely: c.int,
|
||||
cinfo: ^chunk_info_t) -> result_t ---
|
||||
|
||||
/** Read the packed data block for a chunk.
|
||||
*
|
||||
* This assumes that the buffer pointed to by @p packed_data is
|
||||
* large enough to hold the chunk block info packed_size bytes.
|
||||
*/
|
||||
read_chunk :: proc(
|
||||
ctxt: const_context_t,
|
||||
part_index: c.int,
|
||||
cinfo: ^chunk_info_t,
|
||||
packed_data: rawptr) -> result_t ---
|
||||
|
||||
/**
|
||||
* Read chunk for deep data.
|
||||
*
|
||||
* This allows one to read the packed data, the sample count data, or both.
|
||||
* \c exr_read_chunk also works to read deep data packed data,
|
||||
* but this is a routine to get the sample count table and the packed
|
||||
* data in one go, or if you want to pre-read the sample count data,
|
||||
* you can get just that buffer.
|
||||
*/
|
||||
read_deep_chunk :: proc(
|
||||
ctxt: const_context_t,
|
||||
part_index: c.int,
|
||||
cinfo: ^chunk_info_t,
|
||||
packed_data: rawptr,
|
||||
sample_data: rawptr) -> result_t ---
|
||||
|
||||
/**************************************/
|
||||
|
||||
/** Initialize a \c chunk_info_t structure when encoding scanline
|
||||
* data (similar to read but does not do anything with a chunk
|
||||
* table).
|
||||
*/
|
||||
write_scanline_chunk_info :: proc(ctxt: context_t, part_index: c.int, y: c.int, cinfo: ^chunk_info_t) -> result_t ---
|
||||
|
||||
/** Initialize a \c chunk_info_t structure when encoding tiled data
|
||||
* (similar to read but does not do anything with a chunk table).
|
||||
*/
|
||||
write_tile_chunk_info :: proc(
|
||||
ctxt: context_t,
|
||||
part_index: c.int,
|
||||
tilex: c.int,
|
||||
tiley: c.int,
|
||||
levelx: c.int,
|
||||
levely: c.int,
|
||||
cinfo: ^chunk_info_t) -> result_t ---
|
||||
|
||||
/**
|
||||
* @p y must the appropriate starting y for the specified chunk.
|
||||
*/
|
||||
write_scanline_chunk :: proc(
|
||||
ctxt: context_t,
|
||||
part_index: int,
|
||||
y: int,
|
||||
packed_data: rawptr,
|
||||
packed_size: u64) -> result_t ---
|
||||
|
||||
/**
|
||||
* @p y must the appropriate starting y for the specified chunk.
|
||||
*/
|
||||
write_deep_scanline_chunk :: proc(
|
||||
ctxt: context_t,
|
||||
part_index: c.int,
|
||||
y: c.int,
|
||||
packed_data: rawptr,
|
||||
packed_size: u64,
|
||||
unpacked_size: u64,
|
||||
sample_data: rawptr,
|
||||
sample_data_size: u64) -> result_t ---
|
||||
|
||||
write_tile_chunk :: proc(
|
||||
ctxt: context_t,
|
||||
part_index: c.int,
|
||||
tilex: c.int,
|
||||
tiley: c.int,
|
||||
levelx: c.int,
|
||||
levely: c.int,
|
||||
packed_data: rawptr,
|
||||
packed_size: u64) -> result_t ---
|
||||
|
||||
write_deep_tile_chunk :: proc(
|
||||
ctxt: context_t,
|
||||
part_index: c.int,
|
||||
tilex: c.int,
|
||||
tiley: c.int,
|
||||
levelx: c.int,
|
||||
levely: c.int,
|
||||
packed_data: rawptr,
|
||||
packed_size: u64,
|
||||
unpacked_size: u64,
|
||||
sample_data: rawptr,
|
||||
sample_data_size: u64) -> result_t ---
|
||||
}
|
||||
Reference in New Issue
Block a user