aboutsummaryrefslogtreecommitdiffstats
path: root/src/libgamma_native_method.pyx
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2022-07-21 14:53:18 +0200
committerMattias Andrée <maandree@kth.se>2022-07-21 14:53:18 +0200
commit3be28b4e8f75190d30e311f0e69da714cac62cc5 (patch)
tree95374a0ac30802f838e0fee1d7c686b66dd26b11 /src/libgamma_native_method.pyx
parentRemove dist (diff)
downloadpylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.gz
pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.bz2
pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.xz
Change license to ISC, change style, improve makefile1.1.3
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/libgamma_native_method.pyx')
-rw-r--r--src/libgamma_native_method.pyx682
1 files changed, 0 insertions, 682 deletions
diff --git a/src/libgamma_native_method.pyx b/src/libgamma_native_method.pyx
deleted file mode 100644
index 1550caf..0000000
--- a/src/libgamma_native_method.pyx
+++ /dev/null
@@ -1,682 +0,0 @@
-# -*- python -*-
-'''
-pylibgamma — Python 3 wrapper for libgamma
-Copyright © 2014 Mattias Andrée (maandree@member.fsf.org)
-
-This library is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this library. If not, see <http://www.gnu.org/licenses/>.
-'''
-
-cimport cython
-
-from libc.stdint cimport *
-from libc.stdlib cimport malloc
-from libc.stddef cimport size_t
-from libc.errno cimport errno
-
-
-cdef extern from "include-libgamma.h":
- ctypedef struct libgamma_gamma_ramps8_t:
- # Gamma ramp structure for 8-bit gamma ramps.
- size_t red_size
- # The size of `red`.
- size_t green_size
- # The size of `green`.
- size_t blue_size
- # The size of `blue`.
- uint8_t* red
- # The gamma ramp for the red channel.
- uint8_t* green
- # The gamma ramp for the green channel.
- uint8_t* blue
- # The gamma ramp for the blue channel.
-
- ctypedef struct libgamma_gamma_ramps16_t:
- # Gamma ramp structure for 16-bit gamma ramps.
- size_t red_size
- # The size of `red`.
- size_t green_size
- # The size of `green`.
- size_t blue_size
- # The size of `blue`.
- uint16_t* red
- # The gamma ramp for the red channel.
- uint16_t* green
- # The gamma ramp for the green channel.
- uint16_t* blue
- # The gamma ramp for the blue channel.
-
- ctypedef struct libgamma_gamma_ramps32_t:
- # Gamma ramp structure for 32-bit gamma ramps.
- size_t red_size
- # The size of `red`.
- size_t green_size
- # The size of `green`.
- size_t blue_size
- # The size of `blue`.
- uint32_t* red
- # The gamma ramp for the red channel.
- uint32_t* green
- # The gamma ramp for the green channel.
- uint32_t* blue
- # The gamma ramp for the blue channel.
-
- ctypedef struct libgamma_gamma_ramps64_t:
- # Gamma ramp structure for 64-bit gamma ramps.
- size_t red_size
- # The size of `red`.
- size_t green_size
- # The size of `green`.
- size_t blue_size
- # The size of `blue`.
- uint64_t* red
- # The gamma ramp for the red channel.
- uint64_t* green
- # The gamma ramp for the green channel.
- uint64_t* blue
- # The gamma ramp for the blue channel.
-
- ctypedef struct libgamma_gamma_rampsf_t:
- # Gamma ramp structure for `float` gamma ramps.
- size_t red_size
- # The size of `red`.
- size_t green_size
- # The size of `green`.
- size_t blue_size
- # The size of `blue`.
- float* red
- # The gamma ramp for the red channel.
- float* green
- # The gamma ramp for the green channel.
- float* blue
- # The gamma ramp for the blue channel.
-
- ctypedef struct libgamma_gamma_rampsd_t:
- # Gamma ramp structure for `double` gamma ramps.
- size_t red_size
- # The size of `red`.
- size_t green_size
- # The size of `green`.
- size_t blue_size
- # The size of `blue`.
- double* red
- # The gamma ramp for the red channel.
- double* green
- # The gamma ramp for the green channel.
- double* blue
- # The gamma ramp for the blue channel.
-
-
-cdef extern int libgamma_gamma_ramps8_initialise(libgamma_gamma_ramps8_t* this) nogil
-'''
-Initialise a gamma ramp in the proper way that allows all adjustment
-methods to read from and write to it without causing segmentation violation.
-
-The input must have `red_size`, `green_size` and `blue_size` set to the
-sizes of the gamma ramps that should be allocated.
-
-@param this The gamma ramps.
-@return Zero on success, -1 on allocation error, `errno` will be set accordingly.
-'''
-
-cdef extern void libgamma_gamma_ramps8_free(libgamma_gamma_ramps8_t* this) nogil
-'''
-Release resources that are held by a gamma ramp strcuture that
-has been allocated by `libgamma_gamma_ramps8_initialise` or otherwise
-initialises in the proper manner, as well as release the pointer
-to the structure.
-
-@param this The gamma ramps.
-'''
-
-
-cdef extern int libgamma_gamma_ramps16_initialise(libgamma_gamma_ramps16_t* this) nogil
-'''
-Initialise a gamma ramp in the proper way that allows all adjustment
-methods to read from and write to it without causing segmentation violation.
-
-The input must have `red_size`, `green_size` and `blue_size` set to the
-sizes of the gamma ramps that should be allocated.
-
-@param this The gamma ramps.
-@return Zero on success, -1 on allocation error, `errno` will be set accordingly.
-'''
-
-cdef extern void libgamma_gamma_ramps16_free(libgamma_gamma_ramps16_t* this) nogil
-'''
-Release resources that are held by a gamma ramp strcuture that
-has been allocated by `libgamma_gamma_ramps16_initialise` or otherwise
-initialises in the proper manner, as well as release the pointer
-to the structure.
-
-@param this The gamma ramps.
-'''
-
-
-cdef extern int libgamma_gamma_ramps32_initialise(libgamma_gamma_ramps32_t* this) nogil
-'''
-Initialise a gamma ramp in the proper way that allows all adjustment
-methods to read from and write to it without causing segmentation violation.
-
-The input must have `red_size`, `green_size` and `blue_size` set to the
-sizes of the gamma ramps that should be allocated.
-
-@param this The gamma ramps.
-@return Zero on success, -1 on allocation error, `errno` will be set accordingly.
-'''
-
-cdef extern void libgamma_gamma_ramps32_free(libgamma_gamma_ramps32_t* this) nogil
-'''
-Release resources that are held by a gamma ramp strcuture that
-has been allocated by `libgamma_gamma_ramps32_initialise` or otherwise
-initialises in the proper manner, as well as release the pointer
-to the structure.
-
-@param this The gamma ramps.
-'''
-
-
-cdef extern int libgamma_gamma_ramps64_initialise(libgamma_gamma_ramps64_t* this) nogil
-'''
-Initialise a gamma ramp in the proper way that allows all adjustment
-methods to read from and write to it without causing segmentation violation.
-
-The input must have `red_size`, `green_size` and `blue_size` set to the
-sizes of the gamma ramps that should be allocated.
-
-@param this The gamma ramps.
-@return Zero on success, -1 on allocation error, `errno` will be set accordingly.
-'''
-
-cdef extern void libgamma_gamma_ramps64_free(libgamma_gamma_ramps64_t* this) nogil
-'''
-Release resources that are held by a gamma ramp strcuture that
-has been allocated by `libgamma_gamma_ramps64_initialise` or otherwise
-initialises in the proper manner, as well as release the pointer
-to the structure.
-
-@param this The gamma ramps.
-'''
-
-
-cdef extern int libgamma_gamma_rampsf_initialise(libgamma_gamma_rampsf_t* this) nogil
-'''
-Initialise a gamma ramp in the proper way that allows all adjustment
-methods to read from and write to it without causing segmentation violation.
-
-The input must have `red_size`, `green_size` and `blue_size` set to the
-sizes of the gamma ramps that should be allocated.
-
-@param this The gamma ramps.
-@return Zero on success, -1 on allocation error, `errno` will be set accordingly.
-'''
-
-cdef extern void libgamma_gamma_rampsf_free(libgamma_gamma_rampsf_t* this) nogil
-'''
-Release resources that are held by a gamma ramp strcuture that
-has been allocated by `libgamma_gamma_rampsf_initialise` or otherwise
-initialises in the proper manner, as well as release the pointer
-to the structure.
-
-@param this The gamma ramps.
-'''
-
-
-cdef extern int libgamma_gamma_rampsd_initialise(libgamma_gamma_rampsd_t* this) nogil
-'''
-Initialise a gamma ramp in the proper way that allows all adjustment
-methods to read from and write to it without causing segmentation violation.
-
-The input must have `red_size`, `green_size` and `blue_size` set to the
-sizes of the gamma ramps that should be allocated.
-
-@param this The gamma ramps
-@return Zero on success, -1 on allocation error, `errno` will be set accordingly.
-'''
-
-cdef extern void libgamma_gamma_rampsd_free(libgamma_gamma_rampsd_t* this) nogil
-'''
-Release resources that are held by a gamma ramp strcuture that
-has been allocated by `libgamma_gamma_rampsd_initialise` or otherwise
-initialises in the proper manner, as well as release the pointer
-to the structure.
-
-@param this The gamma ramps.
-'''
-
-
-
-def libgamma_native_gamma_ramps8_create(red_size : int, green_size : int, blue_size : int):
- '''
- Create a gamma ramp in the proper way that allows all adjustment
- methods to read from and write to it without causing segmentation violation.
-
- @param red_size The size of the gamma ramp for the red channel
- @param green_size The size of the gamma ramp for the green channel
- @param blue_size The size of the gamma ramp for the blue channel
- @return :(int){4}|int The tuple that describes the created data, `errno` on failure:
- Element 1: The address of the gamma ramp structure
- Element 2: The address of the gamma ramp for the red channel
- Element 3: The address of the gamma ramp for the green channel
- Element 4: The address of the gamma ramp for the blue channel
- '''
- cdef void* allocation = malloc(sizeof(libgamma_gamma_ramps8_t))
- cdef libgamma_gamma_ramps8_t* item = <libgamma_gamma_ramps8_t*>allocation
- cdef size_t red, green, blue
- if item is NULL:
- return int(errno)
- item.red_size = red_size
- item.green_size = green_size
- item.blue_size = blue_size
- if libgamma_gamma_ramps8_initialise(item) < 0:
- return int(errno)
- red = <size_t><void*>(item.red)
- green = <size_t><void*>(item.green)
- blue = <size_t><void*>(item.blue)
- return (int(<size_t>allocation), int(red), int(green), int(blue))
-
-
-def libgamma_native_gamma_ramps8_free(this : int):
- '''
- Release resources that are held by a gamma ramp strcuture that
- has been allocated by `libgamma_native_gamma_ramps8_create` or otherwise
- created in the proper manner, as well as release the pointer
- to the structure.
-
- @param this The gamma ramps.
- '''
- cdef void* address = <void*><size_t>this
- cdef libgamma_gamma_ramps8_t* item = <libgamma_gamma_ramps8_t*>address
- libgamma_gamma_ramps8_free(item)
-
-
-def libgamma_native_gamma_ramps8_get(this : int, index : int) -> int:
- '''
- Read a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @return The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint8_t* ramp = <uint8_t*>address
- return int(ramp[<size_t>index])
-
-
-def libgamma_native_gamma_ramps8_set(this : int, index : int, value : int):
- '''
- Modify a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @param value The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint8_t* ramp = <uint8_t*>address
- ramp[<size_t>index] = <uint8_t>value
-
-
-
-def libgamma_native_gamma_ramps16_create(red_size : int, green_size : int, blue_size : int):
- '''
- Create a gamma ramp in the proper way that allows all adjustment
- methods to read from and write to it without causing segmentation violation.
-
- @param red_size The size of the gamma ramp for the red channel
- @param green_size The size of the gamma ramp for the green channel
- @param blue_size The size of the gamma ramp for the blue channel
- @return :(int){4}|int The tuple that describes the created data, `errno` on failure:
- Element 1: The address of the gamma ramp structure
- Element 2: The address of the gamma ramp for the red channel
- Element 3: The address of the gamma ramp for the green channel
- Element 4: The address of the gamma ramp for the blue channel
- '''
- cdef void* allocation = malloc(sizeof(libgamma_gamma_ramps16_t))
- cdef libgamma_gamma_ramps16_t* item = <libgamma_gamma_ramps16_t*>allocation
- cdef size_t red, green, blue
- if item is NULL:
- return int(errno)
- item.red_size = red_size
- item.green_size = green_size
- item.blue_size = blue_size
- if libgamma_gamma_ramps16_initialise(item) < 0:
- return int(errno)
- red = <size_t><void*>(item.red)
- green = <size_t><void*>(item.green)
- blue = <size_t><void*>(item.blue)
- return (int(<size_t>allocation), int(red), int(green), int(blue))
-
-
-def libgamma_native_gamma_ramps16_free(this : int):
- '''
- Release resources that are held by a gamma ramp strcuture that
- has been allocated by `libgamma_native_gamma_ramps16_create` or otherwise
- created in the proper manner, as well as release the pointer
- to the structure.
-
- @param this The gamma ramps.
- '''
- cdef void* address = <void*><size_t>this
- cdef libgamma_gamma_ramps16_t* item = <libgamma_gamma_ramps16_t*>address
- libgamma_gamma_ramps16_free(item)
-
-
-def libgamma_native_gamma_ramps16_get(this : int, index : int) -> int:
- '''
- Read a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @return The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint16_t* ramp = <uint16_t*>address
- return int(ramp[<size_t>index])
-
-
-def libgamma_native_gamma_ramps16_set(this : int, index : int, value : int):
- '''
- Modify a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @param value The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint16_t* ramp = <uint16_t*>address
- ramp[<size_t>index] = <uint16_t>value
-
-
-
-def libgamma_native_gamma_ramps32_create(red_size : int, green_size : int, blue_size : int):
- '''
- Create a gamma ramp in the proper way that allows all adjustment
- methods to read from and write to it without causing segmentation violation.
-
- @param red_size The size of the gamma ramp for the red channel
- @param green_size The size of the gamma ramp for the green channel
- @param blue_size The size of the gamma ramp for the blue channel
- @return :(int){4}|int The tuple that describes the created data, `errno` on failure:
- Element 1: The address of the gamma ramp structure
- Element 2: The address of the gamma ramp for the red channel
- Element 3: The address of the gamma ramp for the green channel
- Element 4: The address of the gamma ramp for the blue channel
- '''
- cdef void* allocation = malloc(sizeof(libgamma_gamma_ramps32_t))
- cdef libgamma_gamma_ramps32_t* item = <libgamma_gamma_ramps32_t*>allocation
- cdef size_t red, green, blue
- if item is NULL:
- return int(errno)
- item.red_size = red_size
- item.green_size = green_size
- item.blue_size = blue_size
- if libgamma_gamma_ramps32_initialise(item) < 0:
- return int(errno)
- red = <size_t><void*>(item.red)
- green = <size_t><void*>(item.green)
- blue = <size_t><void*>(item.blue)
- return (int(<size_t>allocation), int(red), int(green), int(blue))
-
-
-def libgamma_native_gamma_ramps32_free(this : int):
- '''
- Release resources that are held by a gamma ramp strcuture that
- has been allocated by `libgamma_native_gamma_ramps32_create` or otherwise
- created in the proper manner, as well as release the pointer
- to the structure.
-
- @param this The gamma ramps.
- '''
- cdef void* address = <void*><size_t>this
- cdef libgamma_gamma_ramps32_t* item = <libgamma_gamma_ramps32_t*>address
- libgamma_gamma_ramps32_free(item)
-
-
-def libgamma_native_gamma_ramps32_get(this : int, index : int) -> int:
- '''
- Read a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @return The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint32_t* ramp = <uint32_t*>address
- return int(ramp[<size_t>index])
-
-
-def libgamma_native_gamma_ramps32_set(this : int, index : int, value : int):
- '''
- Modify a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @param value The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint32_t* ramp = <uint32_t*>address
- ramp[<size_t>index] = <uint32_t>value
-
-
-
-def libgamma_native_gamma_ramps64_create(red_size : int, green_size : int, blue_size : int):
- '''
- Create a gamma ramp in the proper way that allows all adjustment
- methods to read from and write to it without causing segmentation violation.
-
- @param red_size The size of the gamma ramp for the red channel
- @param green_size The size of the gamma ramp for the green channel
- @param blue_size The size of the gamma ramp for the blue channel
- @return :(int){4}|int The tuple that describes the created data, `errno` on failure:
- Element 1: The address of the gamma ramp structure
- Element 2: The address of the gamma ramp for the red channel
- Element 3: The address of the gamma ramp for the green channel
- Element 4: The address of the gamma ramp for the blue channel
- '''
- cdef void* allocation = malloc(sizeof(libgamma_gamma_ramps64_t))
- cdef libgamma_gamma_ramps64_t* item = <libgamma_gamma_ramps64_t*>allocation
- cdef size_t red, green, blue
- if item is NULL:
- return int(errno)
- item.red_size = red_size
- item.green_size = green_size
- item.blue_size = blue_size
- if libgamma_gamma_ramps64_initialise(item) < 0:
- return int(errno)
- red = <size_t><void*>(item.red)
- green = <size_t><void*>(item.green)
- blue = <size_t><void*>(item.blue)
- return (int(<size_t>allocation), int(red), int(green), int(blue))
-
-
-def libgamma_native_gamma_ramps64_free(this : int):
- '''
- Release resources that are held by a gamma ramp strcuture that
- has been allocated by `libgamma_native_gamma_ramps64_create` or otherwise
- created in the proper manner, as well as release the pointer
- to the structure.
-
- @param this The gamma ramps.
- '''
- cdef void* address = <void*><size_t>this
- cdef libgamma_gamma_ramps64_t* item = <libgamma_gamma_ramps64_t*>address
- libgamma_gamma_ramps64_free(item)
-
-
-def libgamma_native_gamma_ramps64_get(this : int, index : int) -> int:
- '''
- Read a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @return The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint64_t* ramp = <uint64_t*>address
- return int(ramp[<size_t>index])
-
-
-def libgamma_native_gamma_ramps64_set(this : int, index : int, value : int):
- '''
- Modify a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @param value The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef uint64_t* ramp = <uint64_t*>address
- ramp[<size_t>index] = <uint64_t>value
-
-
-
-def libgamma_native_gamma_rampsf_create(red_size : int, green_size : int, blue_size : int):
- '''
- Create a gamma ramp in the proper way that allows all adjustment
- methods to read from and write to it without causing segmentation violation.
-
- @param red_size The size of the gamma ramp for the red channel
- @param green_size The size of the gamma ramp for the green channel
- @param blue_size The size of the gamma ramp for the blue channel
- @return :(int){4}|int The tuple that describes the created data, `errno` on failure:
- Element 1: The address of the gamma ramp structure
- Element 2: The address of the gamma ramp for the red channel
- Element 3: The address of the gamma ramp for the green channel
- Element 4: The address of the gamma ramp for the blue channel
- '''
- cdef void* allocation = malloc(sizeof(libgamma_gamma_rampsf_t))
- cdef libgamma_gamma_rampsf_t* item = <libgamma_gamma_rampsf_t*>allocation
- cdef size_t red, green, blue
- if item is NULL:
- return int(errno)
- item.red_size = red_size
- item.green_size = green_size
- item.blue_size = blue_size
- if libgamma_gamma_rampsf_initialise(item) < 0:
- return int(errno)
- red = <size_t><void*>(item.red)
- green = <size_t><void*>(item.green)
- blue = <size_t><void*>(item.blue)
- return (int(<size_t>allocation), int(red), int(green), int(blue))
-
-
-def libgamma_native_gamma_rampsf_free(this : int):
- '''
- Release resources that are held by a gamma ramp strcuture that
- has been allocated by `libgamma_native_gamma_rampsf_create` or otherwise
- created in the proper manner, as well as release the pointer
- to the structure.
-
- @param this The gamma ramps.
- '''
- cdef void* address = <void*><size_t>this
- cdef libgamma_gamma_rampsf_t* item = <libgamma_gamma_rampsf_t*>address
- libgamma_gamma_rampsf_free(item)
-
-
-def libgamma_native_gamma_rampsf_get(this : int, index : int) -> float:
- '''
- Read a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @return The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef float* ramp = <float*>address
- return float(ramp[<size_t>index])
-
-
-def libgamma_native_gamma_rampsf_set(this : int, index : int, value : float):
- '''
- Modify a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @param value The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef float* ramp = <float*>address
- ramp[<size_t>index] = <float>value
-
-
-
-def libgamma_native_gamma_rampsd_create(red_size : int, green_size : int, blue_size : int):
- '''
- Create a gamma ramp in the proper way that allows all adjustment
- methods to read from and write to it without causing segmentation violation.
-
- @param red_size The size of the gamma ramp for the red channel
- @param green_size The size of the gamma ramp for the green channel
- @param blue_size The size of the gamma ramp for the blue channel
- @return :(int){4}|int The tuple that describes the created data, `errno` on failure:
- Element 1: The address of the gamma ramp structure
- Element 2: The address of the gamma ramp for the red channel
- Element 3: The address of the gamma ramp for the green channel
- Element 4: The address of the gamma ramp for the blue channel
- '''
- cdef void* allocation = malloc(sizeof(libgamma_gamma_rampsd_t))
- cdef libgamma_gamma_rampsd_t* item = <libgamma_gamma_rampsd_t*>allocation
- cdef size_t red, green, blue
- if item is NULL:
- return int(errno)
- item.red_size = red_size
- item.green_size = green_size
- item.blue_size = blue_size
- if libgamma_gamma_rampsd_initialise(item) < 0:
- return int(errno)
- red = <size_t><void*>(item.red)
- green = <size_t><void*>(item.green)
- blue = <size_t><void*>(item.blue)
- return (int(<size_t>allocation), int(red), int(green), int(blue))
-
-
-def libgamma_native_gamma_rampsd_free(this : int):
- '''
- Release resources that are held by a gamma ramp strcuture that
- has been allocated by `libgamma_native_gamma_rampsd_create` or otherwise
- created in the proper manner, as well as release the pointer
- to the structure.
-
- @param this The gamma ramps.
- '''
- cdef void* address = <void*><size_t>this
- cdef libgamma_gamma_rampsd_t* item = <libgamma_gamma_rampsd_t*>address
- libgamma_gamma_rampsd_free(item)
-
-
-def libgamma_native_gamma_rampsd_get(this : int, index : int) -> float:
- '''
- Read a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @return The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef double* ramp = <double*>address
- return float(ramp[<size_t>index])
-
-
-def libgamma_native_gamma_rampsd_set(this : int, index : int, value : float):
- '''
- Modify a stop in a gamma ramp.
-
- @param this The gamma ramp.
- @param index The index of the gamma ramp stop.
- @param value The value of the gamma ramp stop.
- '''
- cdef void* address = <void*><size_t>this
- cdef double* ramp = <double*>address
- ramp[<size_t>index] = <double>value
-