mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
more low-level pnmimage accessors
This commit is contained in:
parent
05aa20ee3f
commit
bd6100bcab
@ -900,6 +900,82 @@ apply_exponent(double red_exponent, double green_exponent, double blue_exponent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::get_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Directly access the underlying PNMImage array. Know
|
||||||
|
// what you are doing!
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE xel *PNMImage::
|
||||||
|
get_array() {
|
||||||
|
return _array;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::get_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Directly access the underlying PNMImage array. Know
|
||||||
|
// what you are doing!
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE const xel *PNMImage::
|
||||||
|
get_array() const {
|
||||||
|
return _array;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::get_alpha_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Directly access the underlying PNMImage array of
|
||||||
|
// alpha values. Know what you are doing!
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE xelval *PNMImage::
|
||||||
|
get_alpha_array() {
|
||||||
|
return _alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::get_alpha_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Directly access the underlying PNMImage array of
|
||||||
|
// alpha values. Know what you are doing!
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE const xelval *PNMImage::
|
||||||
|
get_alpha_array() const {
|
||||||
|
return _alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::take_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns the underlying PNMImage array and removes it
|
||||||
|
// from the PNMImage. You become the owner of this
|
||||||
|
// array and must eventually free it with
|
||||||
|
// PANDA_FREE_ARRAY() (or pass it to another PNMImage
|
||||||
|
// with set_array()). Know what you are doing!
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE xel *PNMImage::
|
||||||
|
take_array() {
|
||||||
|
xel *array = _array;
|
||||||
|
_array = NULL;
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::take_alpha_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Returns the underlying PNMImage array and removes it
|
||||||
|
// from the PNMImage. You become the owner of this
|
||||||
|
// array and must eventually free it with
|
||||||
|
// PANDA_FREE_ARRAY() (or pass it to another PNMImage
|
||||||
|
// with set_alpha_array()). Know what you are doing!
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
INLINE xelval *PNMImage::
|
||||||
|
take_alpha_array() {
|
||||||
|
xelval *alpha = _alpha;
|
||||||
|
_alpha = NULL;
|
||||||
|
return alpha;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: PNMImage::allocate_array
|
// Function: PNMImage::allocate_array
|
||||||
// Access: Private
|
// Access: Private
|
||||||
|
@ -716,6 +716,46 @@ blend(int x, int y, double r, double g, double b, double alpha) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::set_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Replaces the underlying PNMImage array with the
|
||||||
|
// indicated pointer. Know what you are doing! The new
|
||||||
|
// array must be the correct size and must have been
|
||||||
|
// allocated via PANDA_MALLOC_ARRAY(). The PNMImage
|
||||||
|
// object becomes the owner of this pointer and will
|
||||||
|
// eventually free it with PANDA_FREE_ARRAY(). The
|
||||||
|
// previous array, if any, will be freed with
|
||||||
|
// PANDA_FREE_ARRAY() when this call is made.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void PNMImage::
|
||||||
|
set_array(xel *array) {
|
||||||
|
if (_array != (xel *)NULL) {
|
||||||
|
PANDA_FREE_ARRAY(_array);
|
||||||
|
}
|
||||||
|
_array = array;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: PNMImage::set_alpha_array
|
||||||
|
// Access: Public
|
||||||
|
// Description: Replaces the underlying PNMImage alpha array with the
|
||||||
|
// indicated pointer. Know what you are doing! The new
|
||||||
|
// array must be the correct size and must have been
|
||||||
|
// allocated via PANDA_MALLOC_ARRAY(). The PNMImage
|
||||||
|
// object becomes the owner of this pointer and will
|
||||||
|
// eventually free it with PANDA_FREE_ARRAY(). The
|
||||||
|
// previous array, if any, will be freed with
|
||||||
|
// PANDA_FREE_ARRAY() when this call is made.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void PNMImage::
|
||||||
|
set_alpha_array(xelval *alpha) {
|
||||||
|
if (_alpha != (xelval *)NULL) {
|
||||||
|
PANDA_FREE_ARRAY(_alpha);
|
||||||
|
}
|
||||||
|
_alpha = alpha;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: PNMImage::copy_sub_image
|
// Function: PNMImage::copy_sub_image
|
||||||
// Access: Published
|
// Access: Published
|
||||||
|
@ -252,6 +252,19 @@ PUBLISHED:
|
|||||||
LColord get_average_xel_a() const;
|
LColord get_average_xel_a() const;
|
||||||
double get_average_gray() const;
|
double get_average_gray() const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Know what you are doing if you access the underlying data arrays
|
||||||
|
// directly.
|
||||||
|
INLINE xel *get_array();
|
||||||
|
INLINE const xel *get_array() const;
|
||||||
|
INLINE xelval *get_alpha_array();
|
||||||
|
INLINE const xelval *get_alpha_array() const;
|
||||||
|
|
||||||
|
INLINE xel *take_array();
|
||||||
|
INLINE xelval *take_alpha_array();
|
||||||
|
void set_array(xel *array);
|
||||||
|
void set_alpha_array(xelval *alpha);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
INLINE void allocate_array();
|
INLINE void allocate_array();
|
||||||
INLINE void allocate_alpha();
|
INLINE void allocate_alpha();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user