From d4d2fdb8340e62b065d9d7b1c57d829e55cb558a Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 21 Sep 2014 15:32:45 +0000 Subject: [PATCH 01/27] Tweak colours of API reference to better match website layout --- direct/src/directscripts/Doxyfile.cxx | 6 +++--- direct/src/directscripts/Doxyfile.python | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/direct/src/directscripts/Doxyfile.cxx b/direct/src/directscripts/Doxyfile.cxx index 90ee94c844..a38abda1ea 100644 --- a/direct/src/directscripts/Doxyfile.cxx +++ b/direct/src/directscripts/Doxyfile.cxx @@ -880,13 +880,13 @@ HTML_STYLESHEET = $(DOXYGEN_HTML_STYLESHEET) # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. -HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_HUE = 228 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. -HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_SAT = 99 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below @@ -895,7 +895,7 @@ HTML_COLORSTYLE_SAT = 100 # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. -HTML_COLORSTYLE_GAMMA = 80 +HTML_COLORSTYLE_GAMMA = 56 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting diff --git a/direct/src/directscripts/Doxyfile.python b/direct/src/directscripts/Doxyfile.python index 0e8f507f89..32ba23481d 100644 --- a/direct/src/directscripts/Doxyfile.python +++ b/direct/src/directscripts/Doxyfile.python @@ -863,13 +863,13 @@ HTML_STYLESHEET = $(DOXYGEN_HTML_STYLESHEET) # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. -HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_HUE = 228 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. -HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_SAT = 99 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below @@ -878,7 +878,7 @@ HTML_COLORSTYLE_SAT = 100 # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. -HTML_COLORSTYLE_GAMMA = 80 +HTML_COLORSTYLE_GAMMA = 56 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting From 0a10aa6b2658e1b71a8a5036d4970000cee1936a Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 21 Sep 2014 17:22:47 +0000 Subject: [PATCH 02/27] Don't include protected members/methods in C++ API reference --- direct/src/directscripts/Doxyfile.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/direct/src/directscripts/Doxyfile.cxx b/direct/src/directscripts/Doxyfile.cxx index a38abda1ea..2f05b1606d 100644 --- a/direct/src/directscripts/Doxyfile.cxx +++ b/direct/src/directscripts/Doxyfile.cxx @@ -1451,6 +1451,7 @@ INCLUDE_FILE_PATTERNS = PREDEFINED = TVOLATILE= \ INLINE=inline \ PUBLISHED=public \ + protected=private \ INLINE_LINMATH=inline \ INLINE_MATHUTIL=inline \ EXTENSION(x)= \ From de95ed855dccc51ca0209d87f278ea50e2e5fe42 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 24 Sep 2014 15:33:40 +0000 Subject: [PATCH 03/27] Support enumeration of different pixel formats in WebcamVideo, support for RGB pixel formats in Video4Linux --- panda/src/vision/webcamVideo.I | 21 ++- panda/src/vision/webcamVideo.h | 6 +- panda/src/vision/webcamVideoCursorV4L.cxx | 216 ++++++++++++++-------- panda/src/vision/webcamVideoCursorV4L.h | 12 +- panda/src/vision/webcamVideoV4L.cxx | 142 ++++++++++---- panda/src/vision/webcamVideoV4L.h | 5 +- 6 files changed, 273 insertions(+), 129 deletions(-) diff --git a/panda/src/vision/webcamVideo.I b/panda/src/vision/webcamVideo.I index 356e5c568b..23242cff83 100644 --- a/panda/src/vision/webcamVideo.I +++ b/panda/src/vision/webcamVideo.I @@ -40,11 +40,22 @@ get_size_y() const { // is a maximum theoretical: the actual performance // will depend on the speed of the hardware. //////////////////////////////////////////////////////////////////// -INLINE int WebcamVideo:: +INLINE double WebcamVideo:: get_fps() const { return _fps; } +//////////////////////////////////////////////////////////////////// +// Function: WebcamVideo::get_pixel_format +// Access: Published +// Description: Returns the camera's pixel format, as a FourCC code, +// if known. +//////////////////////////////////////////////////////////////////// +INLINE const string &WebcamVideo:: +get_pixel_format() const { + return _pixel_format; +} + //////////////////////////////////////////////////////////////////// // Function: WebcamVideo::output // Access: Public @@ -53,7 +64,13 @@ get_fps() const { //////////////////////////////////////////////////////////////////// INLINE void WebcamVideo:: output(ostream &out) const { - out << get_name() << ": " << get_size_x() << "x" << get_size_y() << " @ " << get_fps() << "Hz"; + out << get_name() << ": " << get_size_x() << "x" << get_size_y(); + + if (!_pixel_format.empty()) { + out << " " << _pixel_format; + } + + out << " @ " << get_fps() << "Hz"; } INLINE ostream &operator << (ostream &out, const WebcamVideo &n) { diff --git a/panda/src/vision/webcamVideo.h b/panda/src/vision/webcamVideo.h index 94a0b431c7..bcaafc92b4 100644 --- a/panda/src/vision/webcamVideo.h +++ b/panda/src/vision/webcamVideo.h @@ -33,7 +33,8 @@ PUBLISHED: INLINE int get_size_x() const; INLINE int get_size_y() const; - INLINE int get_fps() const; + INLINE double get_fps() const; + INLINE const string &get_pixel_format() const; virtual PT(MovieVideoCursor) open() = 0; @@ -45,7 +46,8 @@ public: protected: int _size_x; int _size_y; - int _fps; + double _fps; + string _pixel_format; static pvector _all_webcams; diff --git a/panda/src/vision/webcamVideoCursorV4L.cxx b/panda/src/vision/webcamVideoCursorV4L.cxx index 9513b9bfe1..e787ff658f 100644 --- a/panda/src/vision/webcamVideoCursorV4L.cxx +++ b/panda/src/vision/webcamVideoCursorV4L.cxx @@ -19,7 +19,6 @@ #include #include #include -#include #ifdef HAVE_JPEG extern "C" { @@ -34,7 +33,7 @@ TypeHandle WebcamVideoCursorV4L::_type_handle; #define clamp(x) min(max(x, 0.0), 255.0) -INLINE static void yuv_to_rgb(unsigned char *dest, const unsigned char *src) { +INLINE static void yuv_to_bgr(unsigned char *dest, const unsigned char *src) { double y1 = (255 / 219.0) * (src[0] - 16); double pb = (255 / 224.0) * (src[1] - 128); double pr = (255 / 224.0) * (src[2] - 128); @@ -43,20 +42,33 @@ INLINE static void yuv_to_rgb(unsigned char *dest, const unsigned char *src) { dest[0] = clamp(1.0 * y1 + 1.772 * pb + 0 * pr); } -INLINE static void yuyv_to_rgbrgb(unsigned char *dest, const unsigned char *src) { +INLINE static void yuyv_to_bgrbgr(unsigned char *dest, const unsigned char *src) { unsigned char yuv[] = {src[0], src[1], src[3]}; - yuv_to_rgb(dest, yuv); + yuv_to_bgr(dest, yuv); yuv[0] = src[2]; - yuv_to_rgb(dest + 3, yuv); + yuv_to_bgr(dest + 3, yuv); } -INLINE static void yuyv_to_rgbargba(unsigned char *dest, const unsigned char *src) { +INLINE static void yuyv_to_bgrabgra(unsigned char *dest, const unsigned char *src) { unsigned char yuv[] = {src[0], src[1], src[3]}; - yuv_to_rgb(dest, yuv); + yuv_to_bgr(dest, yuv); yuv[0] = src[2]; - yuv_to_rgb(dest + 4, yuv); - dest[3] = (unsigned char) -1; - dest[7] = (unsigned char) -1; + yuv_to_bgr(dest + 4, yuv); + dest[3] = 0xff; + dest[7] = 0xff; +} + +INLINE static void rgb_to_bgr(unsigned char *dest, const unsigned char *src) { + dest[0] = src[2]; + dest[1] = src[1]; + dest[2] = src[0]; +} + +INLINE static void rgb_to_bgra(unsigned char *dest, const unsigned char *src) { + dest[0] = src[2]; + dest[1] = src[1]; + dest[2] = src[0]; + dest[3] = 0xff; } #if defined(HAVE_JPEG) && !defined(CPPPARSER) @@ -196,11 +208,8 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { _aborted = false; _streaming = true; _ready = false; - _format = (struct v4l2_format *) malloc(sizeof(struct v4l2_format)); - memset(_format, 0, sizeof(struct v4l2_format)); -#ifdef HAVE_JPEG - _cinfo = NULL; -#endif + memset(&_format, 0, sizeof(struct v4l2_format)); + _buffers = NULL; _buflens = NULL; _fd = open(src->_device.c_str(), O_RDWR); @@ -211,22 +220,38 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { // Find the best format in our _pformats vector. // MJPEG is preferred over YUYV, as it's much smaller. - _format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - pvector::iterator it; - for (it = src->_pformats.begin(); it != src->_pformats.end(); ++it) { + _format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + _format.fmt.pix.pixelformat = src->_pformat; + + switch (_format.fmt.pix.pixelformat) { #ifdef HAVE_JPEG - if (*it == V4L2_PIX_FMT_MJPEG) { - _format->fmt.pix.pixelformat = *it; - break; - } else + case V4L2_PIX_FMT_MJPEG: + _num_components = 3; + break; #endif - if (*it == V4L2_PIX_FMT_YUYV) { - _format->fmt.pix.pixelformat = *it; - break; - } - } - if (it == src->_pformats.end()) { - vision_cat.error() << "Failed to find a suitable pixel format!\n"; + + case V4L2_PIX_FMT_YUYV: + _num_components = 3; + break; + + case V4L2_PIX_FMT_BGR24: + _num_components = 3; + break; + + case V4L2_PIX_FMT_BGR32: + _num_components = 4; + break; + + case V4L2_PIX_FMT_RGB24: + _num_components = 3; + break; + + case V4L2_PIX_FMT_RGB32: + _num_components = 4; + break; + + default: + vision_cat.error() << "Unsupported pixel format " << src->get_pixel_format() << "!\n"; _ready = false; close(_fd); _fd = -1; @@ -234,12 +259,12 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { } // Request a format of this size, and no interlacing - _format->fmt.pix.width = _size_x; - _format->fmt.pix.height = _size_y; - _format->fmt.pix.field = V4L2_FIELD_NONE; + _format.fmt.pix.width = _size_x; + _format.fmt.pix.height = _size_y; + _format.fmt.pix.field = V4L2_FIELD_NONE; // Now politely ask the driver to switch to this format - if (-1 == ioctl(_fd, VIDIOC_S_FMT, _format)) { + if (-1 == ioctl(_fd, VIDIOC_S_FMT, &_format)) { vision_cat.error() << "Driver rejected format!\n"; _ready = false; close(_fd); @@ -247,8 +272,8 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { return; } - _size_x = _format->fmt.pix.width; - _size_y = _format->fmt.pix.height; + _size_x = _format.fmt.pix.width; + _size_y = _format.fmt.pix.height; struct v4l2_streamparm streamparm; memset(&streamparm, 0, sizeof streamparm); @@ -274,7 +299,7 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { } _bufcount = req.count; - _buffers = (void* *) calloc (req.count, sizeof (void*)); + _buffers = (void **) calloc (req.count, sizeof (void*)); _buflens = (size_t*) calloc (req.count, sizeof (size_t)); if (!_buffers || !_buflens) { @@ -312,19 +337,18 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { #ifdef HAVE_JPEG // Initialize the JPEG library, if necessary - if (_format->fmt.pix.pixelformat == V4L2_PIX_FMT_MJPEG) { - _cinfo = (struct jpeg_decompress_struct *) malloc(sizeof(struct jpeg_decompress_struct)); - jpeg_create_decompress(_cinfo); + if (_format.fmt.pix.pixelformat == V4L2_PIX_FMT_MJPEG) { + jpeg_create_decompress(&_cinfo); - _cinfo->src = (struct jpeg_source_mgr *) - (*_cinfo->mem->alloc_small) ((j_common_ptr) _cinfo, JPOOL_PERMANENT, + _cinfo.src = (struct jpeg_source_mgr *) + (*_cinfo.mem->alloc_small) ((j_common_ptr) &_cinfo, JPOOL_PERMANENT, sizeof(struct jpeg_source_mgr)); // Set up function pointers - _cinfo->src->init_source = my_init_source; - _cinfo->src->fill_input_buffer = my_fill_input_buffer; - _cinfo->src->skip_input_data = my_skip_input_data; - _cinfo->src->resync_to_restart = jpeg_resync_to_restart; - _cinfo->src->term_source = my_term_source; + _cinfo.src->init_source = my_init_source; + _cinfo.src->fill_input_buffer = my_fill_input_buffer; + _cinfo.src->skip_input_data = my_skip_input_data; + _cinfo.src->resync_to_restart = jpeg_resync_to_restart; + _cinfo.src->term_source = my_term_source; } #endif _ready = true; @@ -338,14 +362,10 @@ WebcamVideoCursorV4L(WebcamVideoV4L *src) : MovieVideoCursor(src) { WebcamVideoCursorV4L:: ~WebcamVideoCursorV4L() { #ifdef HAVE_JPEG - if (_cinfo != NULL) { - jpeg_destroy_decompress(_cinfo); - free(_cinfo); + if (_format.fmt.pix.pixelformat == V4L2_PIX_FMT_MJPEG) { + jpeg_destroy_decompress(&_cinfo); } #endif - if (_format != NULL) { - free(_format); - } if (-1 != _fd) { enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(_fd, VIDIOC_STREAMOFF, &type); @@ -385,14 +405,15 @@ fetch_buffer() { } nassertr(vbuf.index < _bufcount, NULL); size_t bufsize = _buflens[vbuf.index]; - size_t old_bpl = _format->fmt.pix.bytesperline; - size_t new_bpl = _size_x * 3; + size_t old_bpl = _format.fmt.pix.bytesperline; + size_t new_bpl = _size_x * _num_components; unsigned char *buf = (unsigned char *) _buffers[vbuf.index]; - if (_format->fmt.pix.pixelformat == V4L2_PIX_FMT_MJPEG) { + switch (_format.fmt.pix.pixelformat) { + case V4L2_PIX_FMT_MJPEG: { #ifdef HAVE_JPEG struct my_error_mgr jerr; - _cinfo->err = jpeg_std_error(&jerr.pub); + _cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = my_error_exit; jerr.pub.output_message = my_output_message; @@ -400,41 +421,41 @@ fetch_buffer() { // Establish the setjmp return context for my_error_exit to use if (setjmp(jerr.setjmp_buffer)) { - jpeg_abort_decompress(_cinfo); + jpeg_abort_decompress(&_cinfo); } else { // Set up data pointer - _cinfo->src->bytes_in_buffer = bufsize; - _cinfo->src->next_input_byte = buf; + _cinfo.src->bytes_in_buffer = bufsize; + _cinfo.src->next_input_byte = buf; - if (jpeg_read_header(_cinfo, TRUE) == JPEG_HEADER_OK) { - if (_cinfo->dc_huff_tbl_ptrs[0] == NULL) { + if (jpeg_read_header(&_cinfo, TRUE) == JPEG_HEADER_OK) { + if (_cinfo.dc_huff_tbl_ptrs[0] == NULL) { // Many MJPEG streams do not include huffman tables. Remedy this. - _cinfo->dc_huff_tbl_ptrs[0] = &dc_luminance_tbl; - _cinfo->dc_huff_tbl_ptrs[1] = &dc_chrominance_tbl; - _cinfo->ac_huff_tbl_ptrs[0] = &ac_luminance_tbl; - _cinfo->ac_huff_tbl_ptrs[1] = &ac_chrominance_tbl; + _cinfo.dc_huff_tbl_ptrs[0] = &dc_luminance_tbl; + _cinfo.dc_huff_tbl_ptrs[1] = &dc_chrominance_tbl; + _cinfo.ac_huff_tbl_ptrs[0] = &ac_luminance_tbl; + _cinfo.ac_huff_tbl_ptrs[1] = &ac_chrominance_tbl; } - _cinfo->scale_num = 1; - _cinfo->scale_denom = 1; - _cinfo->out_color_space = JCS_RGB; - _cinfo->dct_method = JDCT_IFAST; + _cinfo.scale_num = 1; + _cinfo.scale_denom = 1; + _cinfo.out_color_space = JCS_RGB; + _cinfo.dct_method = JDCT_IFAST; - if (jpeg_start_decompress(_cinfo) && _cinfo->output_components == 3 - && _size_x == _cinfo->output_width && _size_y == _cinfo->output_height) { + if (jpeg_start_decompress(&_cinfo) && _cinfo.output_components == 3 + && _size_x == _cinfo.output_width && _size_y == _cinfo.output_height) { - JSAMPLE *buffer_end = newbuf + new_bpl * _cinfo->output_height; + JSAMPLE *buffer_end = newbuf + new_bpl * _cinfo.output_height; JSAMPLE *rowptr = newbuf; - while (_cinfo->output_scanline < _cinfo->output_height) { + while (_cinfo.output_scanline < _cinfo.output_height) { nassertd(rowptr + new_bpl <= buffer_end) break; - jpeg_read_scanlines(_cinfo, &rowptr, _cinfo->output_height); + jpeg_read_scanlines(&_cinfo, &rowptr, _cinfo.output_height); rowptr += new_bpl; } - if (_cinfo->output_scanline < _cinfo->output_height) { - jpeg_abort_decompress(_cinfo); + if (_cinfo.output_scanline < _cinfo.output_height) { + jpeg_abort_decompress(&_cinfo); } else { - jpeg_finish_decompress(_cinfo); + jpeg_finish_decompress(&_cinfo); } } } @@ -454,16 +475,51 @@ fetch_buffer() { block[i + 2] = ex; } #else - nassertr(false, NULL); // Not compiled with JPEG support + nassertr(false /* Not compiled with JPEG support*/, NULL); #endif - } else { + break; + } + case V4L2_PIX_FMT_YUYV: for (size_t row = 0; row < _size_y; ++row) { size_t c = 0; for (size_t i = 0; i < old_bpl; i += 4) { - yuyv_to_rgbrgb(block + (_size_y - row - 1) * new_bpl + c, buf + row * old_bpl + i); + yuyv_to_bgrbgr(block + (_size_y - row - 1) * new_bpl + c, buf + row * old_bpl + i); c += 6; } } + break; + + case V4L2_PIX_FMT_BGR24: + case V4L2_PIX_FMT_BGR32: + // Simplest case: copying every row verbatim. + nassertr(old_bpl == new_bpl, NULL); + + for (size_t row = 0; row < _size_y; ++row) { + memcpy(block + (_size_y - row - 1) * new_bpl, buf + row * old_bpl, new_bpl); + } + break; + + case V4L2_PIX_FMT_RGB24: + // Swap components. + nassertr(old_bpl == new_bpl, NULL); + + for (size_t row = 0; row < _size_y; ++row) { + for (size_t i = 0; i < old_bpl; i += 3) { + rgb_to_bgr(block + (_size_y - row - 1) * old_bpl + i, buf + row * old_bpl + i); + } + } + break; + + case V4L2_PIX_FMT_RGB32: + // Swap components. + nassertr(old_bpl == new_bpl, NULL); + + for (size_t row = 0; row < _size_y; ++row) { + for (size_t i = 0; i < old_bpl; i += 4) { + rgb_to_bgra(block + (_size_y - row - 1) * old_bpl + i, buf + row * old_bpl + i + 1); + } + } + break; } if (-1 == ioctl(_fd, VIDIOC_QBUF, &vbuf)) { diff --git a/panda/src/vision/webcamVideoCursorV4L.h b/panda/src/vision/webcamVideoCursorV4L.h index 88edeaab6b..14ffa257f2 100644 --- a/panda/src/vision/webcamVideoCursorV4L.h +++ b/panda/src/vision/webcamVideoCursorV4L.h @@ -22,10 +22,12 @@ #include "webcamVideo.h" #include "movieVideoCursor.h" -struct v4l2_format; +#include -#if defined(HAVE_JPEG) -struct jpeg_decompress_struct; +#ifdef HAVE_JPEG +extern "C" { + #include +} #endif class WebcamVideoV4L; @@ -45,9 +47,9 @@ private: void **_buffers; size_t *_buflens; size_t _bufcount; - struct v4l2_format *_format; + struct v4l2_format _format; #ifdef HAVE_JPEG - struct jpeg_decompress_struct *_cinfo; + struct jpeg_decompress_struct _cinfo; #endif public: diff --git a/panda/src/vision/webcamVideoV4L.cxx b/panda/src/vision/webcamVideoV4L.cxx index 5b9b9992f5..71cee3d312 100644 --- a/panda/src/vision/webcamVideoV4L.cxx +++ b/panda/src/vision/webcamVideoV4L.cxx @@ -25,6 +25,56 @@ TypeHandle WebcamVideoV4L::_type_handle; +//////////////////////////////////////////////////////////////////// +// Function: add_options_for_size +// Access: Private, Static +// Description: +//////////////////////////////////////////////////////////////////// +void WebcamVideoV4L:: +add_options_for_size(int fd, const string &dev, const char *name, unsigned width, unsigned height, unsigned pixelformat) { + struct v4l2_frmivalenum frmivalenum; + for (int k = 0;; k++) { + memset(&frmivalenum, 0, sizeof frmivalenum); + frmivalenum.index = k; + frmivalenum.pixel_format = pixelformat; + frmivalenum.width = width; + frmivalenum.height = height; + if (ioctl(fd, VIDIOC_ENUM_FRAMEINTERVALS, &frmivalenum) == -1) { + break; + } + double fps = 0.0; + switch (frmivalenum.type) { + case V4L2_FRMIVAL_TYPE_DISCRETE: + fps = ((double) frmivalenum.discrete.denominator) / ((double) frmivalenum.discrete.numerator); + break; + + case V4L2_FRMIVAL_TYPE_CONTINUOUS: + case V4L2_FRMIVAL_TYPE_STEPWISE: + { + // Select the maximum framerate. + double max_fps = ((double) frmivalenum.stepwise.max.denominator) / ((double) frmivalenum.stepwise.max.numerator); + fps = max_fps; + } + break; + + default: + continue; + } + + // Create a new webcam video object + PT(WebcamVideoV4L) wc = new WebcamVideoV4L; + wc->set_name(name); + wc->_device = dev; + wc->_size_x = width; + wc->_size_y = height; + wc->_fps = fps; + wc->_pformat = pixelformat; + wc->_pixel_format = string((char*) &pixelformat, 4); + + WebcamVideoV4L::_all_webcams.push_back(DCAST(WebcamVideo, wc)); + } +} + //////////////////////////////////////////////////////////////////// // Function: find_all_webcams_v4l // Access: Public, Static @@ -52,6 +102,23 @@ void find_all_webcams_v4l() { if (ioctl(fd, VIDIOC_ENUM_FMT, &fmt) == -1) { break; } + + // Only accept supported formats. + switch (fmt.pixelformat) { +#ifdef HAVE_JPEG + case V4L2_PIX_FMT_MJPEG: +#endif + case V4L2_PIX_FMT_YUYV: + case V4L2_PIX_FMT_BGR24: + case V4L2_PIX_FMT_BGR32: + case V4L2_PIX_FMT_RGB24: + case V4L2_PIX_FMT_RGB32: + break; + + default: + continue; + } + struct v4l2_frmsizeenum frmsizeenum; for (int j = 0;; j++) { memset(&frmsizeenum, 0, sizeof frmsizeenum); @@ -60,51 +127,48 @@ void find_all_webcams_v4l() { if (ioctl(fd, VIDIOC_ENUM_FRAMESIZES, &frmsizeenum) == -1) { break; } - if (frmsizeenum.type != V4L2_FRMSIZE_TYPE_DISCRETE) { - continue; - } - struct v4l2_frmivalenum frmivalenum; - for (int k = 0;; k++) { - memset(&frmivalenum, 0, sizeof frmivalenum); - frmivalenum.index = k; - frmivalenum.pixel_format = fmt.pixelformat; - frmivalenum.width = frmsizeenum.discrete.width; - frmivalenum.height = frmsizeenum.discrete.height; - if (ioctl(fd, VIDIOC_ENUM_FRAMEINTERVALS, &frmivalenum) == -1) { - break; - } - if (frmivalenum.type != V4L2_FRMIVAL_TYPE_DISCRETE) { - continue; - } - // Create a new webcam video object - PT(WebcamVideoV4L) wc = new WebcamVideoV4L; - wc->set_name((const char*) cap2.card); - wc->_device = *it; - wc->_size_x = frmsizeenum.discrete.width; - wc->_size_y = frmsizeenum.discrete.height; - wc->_fps = ((double) frmivalenum.discrete.denominator) / ((double) frmivalenum.discrete.numerator); - wc->_pformats.push_back(fmt.pixelformat); + switch (frmsizeenum.type) { + case V4L2_FRMSIZE_TYPE_DISCRETE: + // Easy, add the options with this discrete size. + WebcamVideoV4L:: + add_options_for_size(fd, *it, (const char *)cap2.card, + frmsizeenum.discrete.width, + frmsizeenum.discrete.height, + fmt.pixelformat); + break; - // Iterate through the webcams to make sure we don't put any duplicates in there - pvector::iterator wvi; - for (wvi = WebcamVideoV4L::_all_webcams.begin(); wvi != WebcamVideoV4L::_all_webcams.end(); ++wvi) { - if ((*wvi)->is_of_type(WebcamVideoV4L::get_class_type())) { - PT(WebcamVideoV4L) wv_v4l = DCAST(WebcamVideoV4L, *wvi); - if (wv_v4l->_device == wc->_device && - wv_v4l->_size_x == wc->_size_x && - wv_v4l->_size_y == wc->_size_y && - wv_v4l->_fps == wc->_fps) { - wv_v4l->_pformats.push_back(fmt.pixelformat); - break; + case V4L2_FRMSIZE_TYPE_CONTINUOUS: + { + // Okay, er, we don't have a proper handling of this, + // so let's add all powers of two in this range. + + __u32 width = Texture::up_to_power_2(frmsizeenum.stepwise.min_width); + for (; width <= frmsizeenum.stepwise.max_width; width *= 2) { + __u32 height = Texture::up_to_power_2(frmsizeenum.stepwise.min_height); + for (; height <= frmsizeenum.stepwise.max_height; height *= 2) { + WebcamVideoV4L:: + add_options_for_size(fd, *it, (const char *)cap2.card, width, height, fmt.pixelformat); } } } - // Did the loop finish, meaning that a webcam of these - // properties does not exist? Add it. - if (wvi == WebcamVideoV4L::_all_webcams.end()) { - WebcamVideoV4L::_all_webcams.push_back(DCAST(WebcamVideo, wc)); + break; + + case V4L2_FRMSIZE_TYPE_STEPWISE: + { + __u32 width = Texture::up_to_power_2(frmsizeenum.stepwise.min_width); + for (; width <= frmsizeenum.stepwise.max_width; width *= 2) { + __u32 height = Texture::up_to_power_2(frmsizeenum.stepwise.min_height); + for (; height <= frmsizeenum.stepwise.max_height; height *= 2) { + if ((width - frmsizeenum.stepwise.min_width) % frmsizeenum.stepwise.step_width == 0 && + (height - frmsizeenum.stepwise.min_height) % frmsizeenum.stepwise.step_height == 0) { + WebcamVideoV4L:: + add_options_for_size(fd, *it, (const char *)cap2.card, width, height, fmt.pixelformat); + } + } + } } + break; } } } diff --git a/panda/src/vision/webcamVideoV4L.h b/panda/src/vision/webcamVideoV4L.h index 7ebf131df8..1405497fed 100644 --- a/panda/src/vision/webcamVideoV4L.h +++ b/panda/src/vision/webcamVideoV4L.h @@ -33,9 +33,12 @@ private: friend class WebcamVideoCursorV4L; friend void find_all_webcams_v4l(); + static void add_options_for_size(int fd, const string &dev, const char *name, + unsigned width, unsigned height, + unsigned pixelformat); string _device; - pvector _pformats; + uint32_t _pformat; public: static TypeHandle get_class_type() { From 7669e793224691a6cfb36a65a7d682dfe75735f5 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 24 Sep 2014 19:42:37 +0000 Subject: [PATCH 04/27] fix bug #1335472: pfreeze should pack main module as __main__ --- direct/src/showutil/pfreeze.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/direct/src/showutil/pfreeze.py b/direct/src/showutil/pfreeze.py index 20093cc26a..ca43c25703 100755 --- a/direct/src/showutil/pfreeze.py +++ b/direct/src/showutil/pfreeze.py @@ -102,15 +102,16 @@ elif bl.endswith('.exe'): basename = os.path.splitext(basename)[0] startfile = args[0] +startmod = startfile if startfile.endswith('.py') or startfile.endswith('.pyw') or \ startfile.endswith('.pyc') or startfile.endswith('.pyo'): - startfile = os.path.splitext(startfile)[0] + startmod = os.path.splitext(startfile)[0] compileToExe = False if outputType == 'dll': - freezer.addModule(startfile) + freezer.addModule(startmod, filename = startfile) else: - freezer.addModule(startfile, newName = '__main__') + freezer.addModule('__main__', filename = startfile) compileToExe = True freezer.done(compileToExe = compileToExe) From 4f3cc072c244b3ab3c32e798ac4f22de8f74fc6a Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 24 Sep 2014 21:35:21 +0000 Subject: [PATCH 05/27] Fix compiler warning --- contrib/src/ai/aiBehaviors.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/src/ai/aiBehaviors.cxx b/contrib/src/ai/aiBehaviors.cxx index b5a4e4b5a8..da17488c8d 100644 --- a/contrib/src/ai/aiBehaviors.cxx +++ b/contrib/src/ai/aiBehaviors.cxx @@ -1184,6 +1184,7 @@ string AIBehaviors::behavior_status(string ai_type) { default: cout<<"Invalid value!"< Date: Wed, 24 Sep 2014 23:53:37 +0000 Subject: [PATCH 06/27] Add GPU profiling capabilities to PStats using OpenGL timer queries --- panda/src/display/Sources.pp | 2 + panda/src/display/graphicsEngine.cxx | 243 +++++----- panda/src/display/graphicsStateGuardian.I | 45 +- panda/src/display/graphicsStateGuardian.cxx | 251 ++++++++-- panda/src/display/graphicsStateGuardian.h | 46 +- panda/src/display/pStatGPUTimer.I | 61 +++ panda/src/display/pStatGPUTimer.h | 65 +++ panda/src/glstuff/glCgShaderContext_src.cxx | 24 +- panda/src/glstuff/glGraphicsBuffer_src.cxx | 31 +- panda/src/glstuff/glGraphicsBuffer_src.h | 23 +- .../src/glstuff/glGraphicsStateGuardian_src.I | 14 +- .../glstuff/glGraphicsStateGuardian_src.cxx | 455 +++++++++++------- .../src/glstuff/glGraphicsStateGuardian_src.h | 85 ++-- panda/src/glstuff/glLatencyQueryContext_src.I | 14 + .../src/glstuff/glLatencyQueryContext_src.cxx | 54 +++ panda/src/glstuff/glLatencyQueryContext_src.h | 57 +++ panda/src/glstuff/glShaderContext_src.cxx | 47 +- panda/src/glstuff/glTimerQueryContext_src.I | 28 ++ panda/src/glstuff/glTimerQueryContext_src.cxx | 104 ++++ panda/src/glstuff/glTimerQueryContext_src.h | 68 +++ panda/src/glstuff/glmisc_src.cxx | 12 +- panda/src/glstuff/glmisc_src.h | 1 + panda/src/glstuff/glstuff_src.cxx | 2 + panda/src/glstuff/glstuff_src.h | 2 + panda/src/glstuff/panda_glext.h | 6 +- panda/src/gobj/Sources.pp | 3 + panda/src/gobj/config_gobj.cxx | 8 +- panda/src/gobj/p3gobj_composite1.cxx | 3 + panda/src/gobj/p3gobj_composite2.cxx | 4 +- panda/src/gobj/timerQueryContext.I | 26 + panda/src/gobj/timerQueryContext.cxx | 35 ++ panda/src/gobj/timerQueryContext.h | 60 +++ panda/src/gsgbase/graphicsStateGuardianBase.h | 7 +- panda/src/pstatclient/config_pstats.cxx | 11 + panda/src/pstatclient/config_pstats.h | 1 + panda/src/pstatclient/pStatClient.cxx | 109 +++-- panda/src/pstatclient/pStatClient.h | 7 +- panda/src/pstatclient/pStatClientImpl.cxx | 60 ++- panda/src/pstatclient/pStatClientImpl.h | 3 +- panda/src/pstatclient/pStatProperties.cxx | 8 +- panda/src/pstatclient/pStatThread.I | 15 +- panda/src/pstatclient/pStatThread.h | 4 +- panda/src/pstatclient/pStatTimer.h | 4 +- 43 files changed, 1624 insertions(+), 484 deletions(-) create mode 100644 panda/src/display/pStatGPUTimer.I create mode 100644 panda/src/display/pStatGPUTimer.h create mode 100644 panda/src/glstuff/glLatencyQueryContext_src.I create mode 100644 panda/src/glstuff/glLatencyQueryContext_src.cxx create mode 100644 panda/src/glstuff/glLatencyQueryContext_src.h create mode 100644 panda/src/glstuff/glTimerQueryContext_src.I create mode 100644 panda/src/glstuff/glTimerQueryContext_src.cxx create mode 100644 panda/src/glstuff/glTimerQueryContext_src.h create mode 100644 panda/src/gobj/timerQueryContext.I create mode 100644 panda/src/gobj/timerQueryContext.cxx create mode 100644 panda/src/gobj/timerQueryContext.h diff --git a/panda/src/display/Sources.pp b/panda/src/display/Sources.pp index b2f093957a..dfad1153c1 100644 --- a/panda/src/display/Sources.pp +++ b/panda/src/display/Sources.pp @@ -38,6 +38,7 @@ lru.h \ nativeWindowHandle.I nativeWindowHandle.h \ parasiteBuffer.I parasiteBuffer.h \ + pStatGPUTimer.I pStatGPUTimer.h \ windowHandle.I windowHandle.h \ windowProperties.I windowProperties.h \ renderBuffer.h \ @@ -112,6 +113,7 @@ lru.h \ nativeWindowHandle.I nativeWindowHandle.h \ parasiteBuffer.I parasiteBuffer.h \ + pStatGPUTimer.I pStatGPUTimer.h \ windowHandle.I windowHandle.h \ windowProperties.I windowProperties.h \ renderBuffer.h \ diff --git a/panda/src/display/graphicsEngine.cxx b/panda/src/display/graphicsEngine.cxx index ce2641dd5b..e57c559525 100644 --- a/panda/src/display/graphicsEngine.cxx +++ b/panda/src/display/graphicsEngine.cxx @@ -24,6 +24,7 @@ #include "cullTraverser.h" #include "clockObject.h" #include "pStatTimer.h" +#include "pStatGPUTimer.h" #include "pStatClient.h" #include "pStatCollector.h" #include "mutexHolder.h" @@ -51,7 +52,7 @@ #define WINDOWS_LEAN_AND_MEAN #include #include - #undef WINDOWS_LEAN_AND_MEAN + #undef WINDOWS_LEAN_AND_MEAN #else #include #endif @@ -139,7 +140,7 @@ GraphicsEngine(Pipeline *pipeline) : _windows_sorted = true; _window_sort_index = 0; _needs_open_windows = false; - + set_threading_model(GraphicsThreadingModel(threading_model)); if (!_threading_model.is_default()) { display_cat.info() @@ -187,7 +188,7 @@ set_threading_model(const GraphicsThreadingModel &threading_model) { return; } } - + #ifndef THREADED_PIPELINE if (!threading_model.is_single_threaded()) { display_cat.warning() @@ -237,7 +238,7 @@ get_threading_model() const { // // If a null pointer is supplied for the gsg, then this // routine will create a new gsg. -// +// // This routine is only called from the app thread. //////////////////////////////////////////////////////////////////// @@ -282,7 +283,7 @@ make_output(GraphicsPipe *pipe, // already-initialized gsg. // Simplify the input parameters. - + int x_size = 0, y_size = 0; if (win_prop.has_size()) { x_size = win_prop.get_x_size(); @@ -358,7 +359,7 @@ make_output(GraphicsPipe *pipe, // an unencumbered GSG. return NULL; } - + // Determine if a parasite buffer meets the user's specs. bool can_use_parasite = false; @@ -380,7 +381,7 @@ make_output(GraphicsPipe *pipe, // Even if prefer-parasite-buffer is set, parasites are not preferred // if the host window is too small, or if the host window does not // have the requested properties. - + if ((prefer_parasite_buffer) && (can_use_parasite) && (x_size <= host->get_x_size())&& @@ -407,10 +408,10 @@ make_output(GraphicsPipe *pipe, } // Ask the pipe to create a window. - + for (int retry=0; retry<10; retry++) { bool precertify = false; - PT(GraphicsOutput) window = + PT(GraphicsOutput) window = pipe->make_output(name, fb_prop, win_prop, flags, this, gsg, host, retry, precertify); if (window != (GraphicsOutput *)NULL) { window->_sort = sort; @@ -454,11 +455,11 @@ make_output(GraphicsPipe *pipe, nassertr(removed, NULL); } } - + // Parasite buffers were not preferred, but the pipe could not // create a window to the user's specs. Try a parasite as a // last hope. - + if (can_use_parasite) { ParasiteBuffer *buffer = new ParasiteBuffer(host, name, x_size, y_size, flags); buffer->_sort = sort; @@ -612,7 +613,7 @@ remove_all_windows() { // Access: Published // Description: Resets the framebuffer of the current window. This // is currently used by DirectX 8 only. It calls a -// reset_window function on each active window to +// reset_window function on each active window to // release/create old/new framebuffer //////////////////////////////////////////////////////////////////// void GraphicsEngine:: @@ -711,11 +712,11 @@ render_frame() { if (!_windows_sorted) { do_resort_windows(); } - + if (sync_flip && _flip_state != FS_flip) { do_flip_frame(current_thread); } - + // Are any of the windows ready to be deleted? Windows new_windows; new_windows.reserve(_windows.size()); @@ -725,10 +726,10 @@ render_frame() { nassertv(win != NULL); if (win->get_delete_flag()) { do_remove_window(win, current_thread); - + } else { new_windows.push_back(win); - + // Let's calculate each scene's bounding volume here in App, // before we cycle the pipeline. The cull traversal will // calculate it anyway, but if we calculate it in App first @@ -769,11 +770,11 @@ render_frame() { } _loaded_textures.clear(); } - + // Now it's time to do any drawing from the main frame--after all of // the App code has executed, but before we begin the next frame. _app.do_frame(this, current_thread); - + // Grab each thread's mutex again after all windows have flipped, // and wait for the thread to finish. { @@ -782,32 +783,32 @@ render_frame() { for (ti = _threads.begin(); ti != _threads.end(); ++ti) { RenderThread *thread = (*ti).second; thread->_cv_mutex.acquire(); - + while (thread->_thread_state != TS_wait) { thread->_cv_done.wait(); } } } - + #if defined(THREADED_PIPELINE) && defined(DO_PSTATS) _cyclers_pcollector.set_level(_pipeline->get_num_cyclers()); _dirty_cyclers_pcollector.set_level(_pipeline->get_num_dirty_cyclers()); - + #ifdef DEBUG_THREADS if (PStatClient::is_connected()) { _pipeline->iterate_all_cycler_types(pstats_count_cycler_type, this); _pipeline->iterate_dirty_cycler_types(pstats_count_dirty_cycler_type, this); } #endif // DEBUG_THREADS - + #endif // THREADED_PIPELINE && DO_PSTATS - + GeomCacheManager::flush_level(); CullTraverser::flush_level(); RenderState::flush_level(); TransformState::flush_level(); CullableObject::flush_level(); - + // Now cycle the pipeline and officially begin the next frame. #ifdef THREADED_PIPELINE { @@ -815,15 +816,15 @@ render_frame() { _pipeline->cycle(); } #endif // THREADED_PIPELINE - + global_clock->tick(current_thread); if (global_clock->check_errors(current_thread)) { throw_event("clock_error"); } - + #ifdef DO_PSTATS PStatClient::main_tick(); - + // Reset our pcollectors that track data across the frame. CullTraverser::_nodes_pcollector.clear_level(); CullTraverser::_geom_nodes_pcollector.clear_level(); @@ -832,18 +833,18 @@ render_frame() { GeomCacheManager::_geom_cache_record_pcollector.clear_level(); GeomCacheManager::_geom_cache_erase_pcollector.clear_level(); GeomCacheManager::_geom_cache_evict_pcollector.clear_level(); - + GraphicsStateGuardian::init_frame_pstats(); - + _transform_states_pcollector.set_level(TransformState::get_num_states()); _render_states_pcollector.set_level(RenderState::get_num_states()); if (pstats_unused_states) { _transform_states_unused_pcollector.set_level(TransformState::get_num_unused_states()); _render_states_unused_pcollector.set_level(RenderState::get_num_unused_states()); } - + _sw_sprites_pcollector.clear_level(); - + _cnode_volume_pcollector.clear_level(); _gnode_volume_pcollector.clear_level(); _geom_volume_pcollector.clear_level(); @@ -868,18 +869,18 @@ render_frame() { _occlusion_passed_pcollector.clear_level(); _occlusion_failed_pcollector.clear_level(); _occlusion_tests_pcollector.clear_level(); - + if (PStatClient::is_connected()) { size_t small_buf = GeomVertexArrayData::get_small_lru()->get_total_size(); size_t independent = GeomVertexArrayData::get_independent_lru()->get_total_size(); size_t resident = VertexDataPage::get_global_lru(VertexDataPage::RC_resident)->get_total_size(); size_t compressed = VertexDataPage::get_global_lru(VertexDataPage::RC_compressed)->get_total_size(); size_t pending = VertexDataPage::get_pending_lru()->get_total_size(); - + VertexDataSaveFile *save_file = VertexDataPage::get_save_file(); size_t total_disk = save_file->get_total_file_size(); size_t used_disk = save_file->get_used_file_size(); - + _vertex_data_small_pcollector.set_level(small_buf); _vertex_data_independent_pcollector.set_level(independent); _vertex_data_pending_pcollector.set_level(pending); @@ -888,11 +889,11 @@ render_frame() { _vertex_data_unused_disk_pcollector.set_level(total_disk - used_disk); _vertex_data_used_disk_pcollector.set_level(used_disk); } - + #endif // DO_PSTATS - + GeomVertexArrayData::lru_epoch(); - + // Now signal all of our threads to begin their next frame. Threads::const_iterator ti; for (ti = _threads.begin(); ti != _threads.end(); ++ti) { @@ -903,24 +904,24 @@ render_frame() { } thread->_cv_mutex.release(); } - + // Some threads may still be drawing, so indicate that we have to // wait for those threads before we can flip. _flip_state = _auto_flip ? FS_flip : FS_draw; } // Now the lock is released. - + if (yield_timeslice) { // Nap for a moment to yield the timeslice, to be polite to other // running applications. PStatTimer timer(_yield_pcollector, current_thread); Thread::force_yield(); - } else if (!Thread::is_true_threads()) { + } else if (!Thread::is_true_threads()) { PStatTimer timer(_yield_pcollector, current_thread); Thread::consider_yield(); } - + // Anything that happens outside of GraphicsEngine::render_frame() // is deemed to be App. _app_pcollector.start(); @@ -960,11 +961,11 @@ open_windows() { for (ti = _threads.begin(); ti != _threads.end(); ++ti) { RenderThread *thread = (*ti).second; thread->_cv_mutex.acquire(); - + while (thread->_thread_state != TS_wait) { thread->_cv_done.wait(); } - + thread->_thread_state = TS_do_windows; thread->_cv_start.notify(); thread->_cv_mutex.release(); @@ -1003,7 +1004,7 @@ sync_frame() { // we seems to return once all draw calls have been submitted. // Calling 'flip_frame' after this function should immediately // cause a buffer flip. This function will only work in -// opengl right now, for all other graphics pipelines it will +// opengl right now, for all other graphics pipelines it will // simply return immediately. In opengl it's a bit of a hack: // it will attempt to read a single pixel from the frame buffer to // force the graphics card to finish drawing before it returns @@ -1081,7 +1082,7 @@ extract_texture_data(Texture *tex, GraphicsStateGuardian *gsg) { WindowRenderer *wr = get_window_renderer(draw_name, 0); RenderThread *thread = (RenderThread *)wr; MutexHolder holder2(thread->_cv_mutex); - + while (thread->_thread_state != TS_wait) { thread->_cv_done.wait(); } @@ -1130,7 +1131,7 @@ dispatch_compute(const LVecBase3i &work_groups, const ShaderAttrib *sattr, Graph WindowRenderer *wr = get_window_renderer(draw_name, 0); RenderThread *thread = (RenderThread *)wr; MutexHolder holder2(thread->_cv_mutex); - + while (thread->_thread_state != TS_wait) { thread->_cv_done.wait(); } @@ -1148,7 +1149,7 @@ dispatch_compute(const LVecBase3i &work_groups, const ShaderAttrib *sattr, Graph //////////////////////////////////////////////////////////////////// // Function: GraphicsEngine::get_global_ptr // Access: Published, Static -// Description: +// Description: //////////////////////////////////////////////////////////////////// GraphicsEngine *GraphicsEngine:: get_global_ptr() { @@ -1216,7 +1217,7 @@ do_cull(CullHandler *cull_handler, SceneSetup *scene_setup, local_frustum = DCAST(GeometricBoundingVolume, bv->make_copy()); NodePath scene_parent = scene_setup->get_scene_root().get_parent(current_thread); - CPT(TransformState) cull_center_transform = + CPT(TransformState) cull_center_transform = scene_setup->get_cull_center().get_transform(scene_parent, current_thread); local_frustum->xform(cull_center_transform->get_mat()); @@ -1337,7 +1338,7 @@ cull_and_draw_together(const GraphicsEngine::Windows &wlist, if (win->begin_frame(GraphicsOutput::FM_render, current_thread)) { win->clear(current_thread); - + int num_display_regions = win->get_num_active_display_regions(); for (int i = 0; i < num_display_regions; i++) { DisplayRegion *dr = win->get_active_display_region(i); @@ -1376,7 +1377,7 @@ cull_and_draw_together(GraphicsOutput *win, DisplayRegion *dr, GraphicsStateGuardian *gsg = win->get_gsg(); nassertv(gsg != (GraphicsStateGuardian *)NULL); - DisplayRegionPipelineReader *dr_reader = + DisplayRegionPipelineReader *dr_reader = new DisplayRegionPipelineReader(dr, current_thread); win->change_scenes(dr_reader); @@ -1409,9 +1410,9 @@ cull_and_draw_together(GraphicsOutput *win, DisplayRegion *dr, // Issue the cull callback on this DisplayRegion. DisplayRegionCullCallbackData cbdata(&cull_handler, scene_setup); cbobj->do_callback(&cbdata); - + // The callback has taken care of the culling. - + } else { // Perform the cull normally. dr->do_cull(&cull_handler, scene_setup, gsg, current_thread); @@ -1455,7 +1456,7 @@ cull_to_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) { for (int i = 0; i < num_display_regions; ++i) { DisplayRegion *dr = win->get_active_display_region(i); if (dr != (DisplayRegion *)NULL) { - DisplayRegionPipelineReader *dr_reader = + DisplayRegionPipelineReader *dr_reader = new DisplayRegionPipelineReader(dr, current_thread); NodePath camera = dr_reader->get_camera(); AlreadyCulled::iterator aci = already_culled.insert(AlreadyCulled::value_type(camera, (DisplayRegion *)NULL)).first; @@ -1466,7 +1467,7 @@ cull_to_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) { dr_reader = NULL; (*aci).second = dr; cull_to_bins(win, dr, current_thread); - + } else { // We have already culled a scene using this camera in // this thread, and now we're being asked to cull another @@ -1480,7 +1481,7 @@ cull_to_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) { setup_scene(win->get_gsg(), dr_reader), current_thread); } - + if (dr_reader != (DisplayRegionPipelineReader *)NULL) { delete dr_reader; } @@ -1538,7 +1539,7 @@ cull_to_bins(GraphicsOutput *win, DisplayRegion *dr, Thread *current_thread) { PStatTimer timer(_cull_sort_pcollector, current_thread); cull_result->finish_cull(scene_setup, current_thread); } - + // Save the results for next frame. dr->set_cull_result(cull_result, scene_setup, current_thread); } @@ -1559,53 +1560,73 @@ draw_bins(const GraphicsEngine::Windows &wlist, Thread *current_thread) { size_t wlist_size = wlist.size(); for (size_t wi = 0; wi < wlist_size; ++wi) { GraphicsOutput *win = wlist[wi]; + if (win->is_active()) { - if (win->flip_ready()) { + GraphicsStateGuardian *gsg = win->get_gsg(); + + GraphicsOutput *host = win->get_host(); + if (host->flip_ready()) { { + // We can't use a PStatGPUTimer before begin_frame, so when using GPU + // timing, it is advisable to set auto-flip to #t. PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread); - win->begin_flip(); + host->begin_flip(); } { PStatTimer timer(GraphicsEngine::_flip_end_pcollector, current_thread); - win->end_flip(); + host->end_flip(); } } - PStatTimer timer(win->get_draw_window_pcollector(), current_thread); if (win->begin_frame(GraphicsOutput::FM_render, current_thread)) { - win->clear(current_thread); + // We have to place this collector inside begin_frame, because + // we need a current context for PStatGPUTimer to work. + { + PStatGPUTimer timer(win->get_gsg(), win->get_draw_window_pcollector(), current_thread); + win->clear(current_thread); - if (display_cat.is_spam()) { - display_cat.spam() - << "Drawing window " << win->get_name() << "\n"; - } - int num_display_regions = win->get_num_active_display_regions(); - for (int i = 0; i < num_display_regions; ++i) { - DisplayRegion *dr = win->get_active_display_region(i); - if (dr != (DisplayRegion *)NULL) { - draw_bins(win, dr, current_thread); + if (display_cat.is_spam()) { + display_cat.spam() + << "Drawing window " << win->get_name() << "\n"; + } + int num_display_regions = win->get_num_active_display_regions(); + for (int i = 0; i < num_display_regions; ++i) { + DisplayRegion *dr = win->get_active_display_region(i); + if (dr != (DisplayRegion *)NULL) { + draw_bins(win, dr, current_thread); + } } } win->end_frame(GraphicsOutput::FM_render, current_thread); if (_auto_flip) { +#ifdef DO_PSTATS + // This is a good time to perform a latency query. + if (win->get_gsg()->get_timer_queries_active()) { + win->get_gsg()->issue_timer_query(GraphicsStateGuardian::_command_latency_pcollector.get_index()); + } +#endif + if (win->flip_ready()) { { + // begin_flip doesn't do anything interesting, let's not waste two timer queries on that. PStatTimer timer(GraphicsEngine::_flip_begin_pcollector, current_thread); win->begin_flip(); } { - PStatTimer timer(GraphicsEngine::_flip_end_pcollector, current_thread); + PStatGPUTimer timer(win->get_gsg(), GraphicsEngine::_flip_end_pcollector, current_thread); win->end_flip(); } } } + } else { if (display_cat.is_spam()) { display_cat.spam() << "Not drawing window " << win->get_name() << "\n"; } } + } else { if (display_cat.is_spam()) { display_cat.spam() @@ -1722,8 +1743,6 @@ ready_flip_windows(const GraphicsEngine::Windows &wlist, Thread *current_thread) } } - - //////////////////////////////////////////////////////////////////// // Function: GraphicsEngine::do_sync_frame // Access: Private @@ -1751,7 +1770,6 @@ do_sync_frame(Thread *current_thread) { _flip_state = FS_sync; } - //////////////////////////////////////////////////////////////////// // Function: GraphicsEngine::do_ready_flip // Access: Private @@ -1777,8 +1795,6 @@ do_ready_flip(Thread *current_thread) { } _app.do_ready_flip(this,current_thread); _flip_state = FS_sync; - - } //////////////////////////////////////////////////////////////////// @@ -1811,7 +1827,7 @@ do_flip_frame(Thread *current_thread) { } } } - + // Now signal all of our threads to flip the windows. _app.do_flip(this, current_thread); @@ -1895,7 +1911,7 @@ setup_scene(GraphicsStateGuardian *gsg, DisplayRegionPipelineReader *dr) { // There must be a singular transform over the scene. if (!_singular_warning_last_frame) { display_cat.warning() - << "Scene " << scene_root << " has net scale (" + << "Scene " << scene_root << " has net scale (" << scene_root.get_scale(NodePath()) << "); cannot render.\n"; _singular_warning_this_frame = true; } @@ -1906,7 +1922,7 @@ setup_scene(GraphicsStateGuardian *gsg, DisplayRegionPipelineReader *dr) { // There must be a singular transform over the camera. if (!_singular_warning_last_frame) { display_cat.warning() - << "Camera " << camera << " has net scale (" + << "Camera " << camera << " has net scale (" << camera.get_scale(NodePath()) << "); cannot render.\n"; } _singular_warning_this_frame = true; @@ -1950,11 +1966,12 @@ setup_scene(GraphicsStateGuardian *gsg, DisplayRegionPipelineReader *dr) { void GraphicsEngine:: do_draw(CullResult *cull_result, SceneSetup *scene_setup, GraphicsOutput *win, DisplayRegion *dr, Thread *current_thread) { - // Statistics - PStatTimer timer(dr->get_draw_region_pcollector(), current_thread); - GraphicsStateGuardian *gsg = win->get_gsg(); CallbackObject *cbobj; + GraphicsStateGuardian *gsg = win->get_gsg(); + + // Statistics + PStatGPUTimer timer(gsg, dr->get_draw_region_pcollector(), current_thread); { DisplayRegionPipelineReader dr_reader(dr, current_thread); @@ -2033,20 +2050,20 @@ do_add_window(GraphicsOutput *window, _windows_sorted = false; _windows.push_back(window); - WindowRenderer *cull = + WindowRenderer *cull = get_window_renderer(threading_model.get_cull_name(), threading_model.get_cull_stage()); - WindowRenderer *draw = + WindowRenderer *draw = get_window_renderer(threading_model.get_draw_name(), threading_model.get_draw_stage()); - + if (threading_model.get_cull_sorting()) { cull->add_window(cull->_cull, window); draw->add_window(draw->_draw, window); } else { cull->add_window(cull->_cdraw, window); } - + // Ask the pipe which thread it prefers to run its windowing // commands in (the "window thread"). This is the thread that // handles the commands to open, resize, etc. the window. X @@ -2056,7 +2073,7 @@ do_add_window(GraphicsOutput *window, // has been bound in a given thread, it cannot subsequently be bound // in any other thread, and we have to bind a context in // open_window()). - + switch (window->get_pipe()->get_preferred_window_thread()) { case GraphicsPipe::PWT_app: _app.add_window(_app._window, window); @@ -2095,8 +2112,8 @@ do_add_gsg(GraphicsStateGuardian *gsg, GraphicsPipe *pipe, } auto_adjust_capabilities(gsg); - - WindowRenderer *draw = + + WindowRenderer *draw = get_window_renderer(threading_model.get_draw_name(), threading_model.get_draw_stage()); @@ -2227,7 +2244,7 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { << "textures_power_2 to 'up' or 'down'.\n"; textures_power_2 = ATS_down; // Not a fix. Just suppresses further error messages. } - + if (textures_auto_power_2 && !Texture::has_textures_power_2()) { if (gsg->get_supports_tex_non_pow2()) { Texture::set_textures_power_2(ATS_none); @@ -2235,13 +2252,13 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { Texture::set_textures_power_2(textures_power_2); } } - - if ((Texture::get_textures_power_2() == ATS_none) && + + if ((Texture::get_textures_power_2() == ATS_none) && (!gsg->get_supports_tex_non_pow2())) { - + // Overaggressive configuration detected - - display_cat.error() + + display_cat.error() << "The 'textures_power_2' configuration is set to 'none', meaning \n" << "that non-power-of-two texture support is required, but the video \n" << "driver I'm trying to use does not support non-power-of-two textures.\n"; @@ -2250,7 +2267,7 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { display_cat.error() << "The 'none' did not come from the config file. In other words,\n" << "the variable 'textures_power_2' was altered procedurally.\n"; - + if (textures_auto_power_2) { display_cat.error() << "It is possible that it was set by panda's automatic mechanisms,\n" @@ -2263,7 +2280,7 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { } } } - + if (shader_auto_utilization && (shader_utilization != SUT_none)) { display_cat.error() << "Invalid panda config file: if you set the config-variable\n" @@ -2271,7 +2288,7 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { << "shader_utilization to 'none'.\n"; shader_utilization = SUT_none; // Not a fix. Just suppresses further error messages. } - + if (shader_auto_utilization && !Shader::have_shader_utilization()) { if (gsg->get_supports_basic_shaders()) { Shader::set_shader_utilization(SUT_basic); @@ -2279,13 +2296,13 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { Shader::set_shader_utilization(SUT_none); } } - - if ((Shader::get_shader_utilization() != SUT_none) && + + if ((Shader::get_shader_utilization() != SUT_none) && (!gsg->get_supports_basic_shaders())) { - + // Overaggressive configuration detected - - display_cat.error() + + display_cat.error() << "The 'shader_utilization' config variable is set, meaning\n" << "that panda may try to generate shaders. However, the video \n" << "driver I'm trying to use does not support shaders.\n"; @@ -2294,7 +2311,7 @@ auto_adjust_capabilities(GraphicsStateGuardian *gsg) { display_cat.error() << "The 'shader_utilization' setting did not come from the config\n" << "file. In other words, it was altered procedurally.\n"; - + if (shader_auto_utilization) { display_cat.error() << "It is possible that it was set by panda's automatic mechanisms,\n" @@ -2322,7 +2339,7 @@ terminate_threads(Thread *current_thread) { // We spend almost our entire time in this method just waiting for // threads. Time it appropriately. PStatTimer timer(_wait_pcollector, current_thread); - + // First, wait for all the threads to finish their current frame. // Grabbing the mutex should achieve that. Threads::const_iterator ti; @@ -2330,7 +2347,7 @@ terminate_threads(Thread *current_thread) { RenderThread *thread = (*ti).second; thread->_cv_mutex.acquire(); } - + // Now tell them to close their windows and terminate. for (ti = _threads.begin(); ti != _threads.end(); ++ti) { RenderThread *thread = (*ti).second; @@ -2344,7 +2361,7 @@ terminate_threads(Thread *current_thread) { RenderThread *thread = (*ti).second; thread->join(); } - + _threads.clear(); } @@ -2450,7 +2467,7 @@ get_window_renderer(const string &name, int pipeline_stage) { //////////////////////////////////////////////////////////////////// // Function: GraphicsEngine::WindowRenderer::Constructor // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// GraphicsEngine::WindowRenderer:: WindowRenderer(const string &name) : @@ -2588,7 +2605,7 @@ do_frame(GraphicsEngine *engine, Thread *current_thread) { // This one has no outstanding pointers; clean it up. GraphicsPipe *pipe = gsg->get_pipe(); engine->close_gsg(pipe, gsg); - } else { + } else { // This one is ok; preserve it. new_gsgs.insert(gsg); } @@ -2667,12 +2684,12 @@ do_close(GraphicsEngine *engine, Thread *current_thread) { // This one has no outstanding pointers; clean it up. GraphicsPipe *pipe = gsg->get_pipe(); engine->close_gsg(pipe, gsg); - } else { + } else { // This one is ok; preserve it. new_gsgs.insert(gsg); } } - + _gsgs.swap(new_gsgs); } @@ -2728,10 +2745,10 @@ any_done_gsgs() const { //////////////////////////////////////////////////////////////////// // Function: GraphicsEngine::RenderThread::Constructor // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// GraphicsEngine::RenderThread:: -RenderThread(const string &name, GraphicsEngine *engine) : +RenderThread(const string &name, GraphicsEngine *engine) : Thread(name, "Main"), WindowRenderer(name), _engine(engine), diff --git a/panda/src/display/graphicsStateGuardian.I b/panda/src/display/graphicsStateGuardian.I index 900e349254..6b6f5fe370 100644 --- a/panda/src/display/graphicsStateGuardian.I +++ b/panda/src/display/graphicsStateGuardian.I @@ -1,6 +1,6 @@ // Filename: graphicsStateGuardian.I // Created by: drose (24Sep99) -// Updated by: fperazzi, PandaSE (29Apr10) (added +// Updated by: fperazzi, PandaSE (29Apr10) (added // get_max_2d_texture_array_layers and related) // //////////////////////////////////////////////////////////////////// @@ -334,10 +334,10 @@ get_max_3d_texture_dimension() const { //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_max_2d_texture_array_layers // Access: Published -// Description: Returns the largest possible number of pages, or -1 +// Description: Returns the largest possible number of pages, or -1 // if there is no particular limit. Returns 0 if 2-d // texture arrays not supported. -// +// // The value returned may not be meaningful until after // the graphics context has been fully created (e.g. the // window has been opened). @@ -713,6 +713,45 @@ get_supports_geometry_instancing() const { return _supports_geometry_instancing; } +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::get_supports_occlusion_query +// Access: Published +// Description: Returns true if this GSG supports an occlusion query. +// If this is true, then begin_occlusion_query() and +// end_occlusion_query() may be called to bracket a +// sequence of draw_triangles() (or whatever) calls to +// measure pixels that pass the depth test. +//////////////////////////////////////////////////////////////////// +bool GraphicsStateGuardian:: +get_supports_occlusion_query() const { + return _supports_occlusion_query; +} + +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::get_supports_timer_query +// Access: Published +// Description: Returns true if this GSG supports a timer query. +//////////////////////////////////////////////////////////////////// +bool GraphicsStateGuardian:: +get_supports_timer_query() const { + return _supports_timer_query; +} + +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::get_timer_queries_active +// Access: Published +// Description: Returns true if timer queries are currently +// enabled on this GSG. +//////////////////////////////////////////////////////////////////// +bool GraphicsStateGuardian:: +get_timer_queries_active() const { +#ifdef DO_PSTATS + return _timer_queries_active; +#else + return false; +#endif +} + //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_max_color_targets // Access: Published diff --git a/panda/src/display/graphicsStateGuardian.cxx b/panda/src/display/graphicsStateGuardian.cxx index 1cbd3f49c6..2a76922425 100644 --- a/panda/src/display/graphicsStateGuardian.cxx +++ b/panda/src/display/graphicsStateGuardian.cxx @@ -28,6 +28,7 @@ #include "throw_event.h" #include "clockObject.h" #include "pStatTimer.h" +#include "pStatGPUTimer.h" #include "geomTristrips.h" #include "geomTrifans.h" #include "geomLinestrips.h" @@ -55,6 +56,7 @@ #include "colorScaleAttrib.h" #include "clipPlaneAttrib.h" #include "fogAttrib.h" +#include "config_pstats.h" #include #include @@ -87,9 +89,19 @@ PStatCollector GraphicsStateGuardian::_draw_primitive_pcollector("Draw:Primitive PStatCollector GraphicsStateGuardian::_draw_set_state_pcollector("Draw:Set State"); PStatCollector GraphicsStateGuardian::_clear_pcollector("Draw:Clear"); PStatCollector GraphicsStateGuardian::_flush_pcollector("Draw:Flush"); +PStatCollector GraphicsStateGuardian::_compute_dispatch_pcollector("Draw:Compute dispatch"); PStatCollector GraphicsStateGuardian::_wait_occlusion_pcollector("Wait:Occlusion"); +PStatCollector GraphicsStateGuardian::_wait_timer_pcollector("Wait:Timer Queries"); +PStatCollector GraphicsStateGuardian::_timer_queries_pcollector("Timer queries"); +PStatCollector GraphicsStateGuardian::_command_latency_pcollector("Command latency"); +PStatCollector GraphicsStateGuardian::_prepare_pcollector("Draw:Prepare"); +PStatCollector GraphicsStateGuardian::_prepare_texture_pcollector("Draw:Prepare:Texture"); +PStatCollector GraphicsStateGuardian::_prepare_geom_pcollector("Draw:Prepare:Geom"); +PStatCollector GraphicsStateGuardian::_prepare_shader_pcollector("Draw:Prepare:Shader"); +PStatCollector GraphicsStateGuardian::_prepare_vertex_buffer_pcollector("Draw:Prepare:Vertex buffer"); +PStatCollector GraphicsStateGuardian::_prepare_index_buffer_pcollector("Draw:Prepare:Index buffer"); PStatCollector GraphicsStateGuardian::_draw_set_state_transform_pcollector("Draw:Set State:Transform"); PStatCollector GraphicsStateGuardian::_draw_set_state_alpha_test_pcollector("Draw:Set State:Alpha test"); @@ -115,7 +127,6 @@ PStatCollector GraphicsStateGuardian::_draw_set_state_stencil_pcollector("Draw:S PStatCollector GraphicsStateGuardian::_draw_set_state_fog_pcollector("Draw:Set State:Fog"); PStatCollector GraphicsStateGuardian::_draw_set_state_scissor_pcollector("Draw:Set State:Scissor"); - PT(TextureStage) GraphicsStateGuardian::_alpha_scale_texture_stage = NULL; TypeHandle GraphicsStateGuardian::_type_handle; @@ -197,6 +208,16 @@ GraphicsStateGuardian(CoordinateSystem internal_coordinate_system, _max_vertex_transform_indices = 0; _supports_occlusion_query = false; + _supports_timer_query = false; + +#ifdef DO_PSTATS + _timer_queries_active = false; + _last_query_frame = 0; + _last_num_queried = 0; + //_timer_delta = 0.0; + + _pstats_gpu_thread = -1; +#endif // Initially, we set this to false; a GSG that knows it has this // property should set it to true. @@ -261,7 +282,7 @@ GraphicsStateGuardian:: delete _stencil_render_states; _stencil_render_states = 0; } - + if (_shader_generator) { delete _shader_generator; _shader_generator = 0; @@ -322,7 +343,7 @@ get_supported_geom_rendering() const { //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_supports_cg_profile // Access: Published, Virtual -// Description: Returns true if this particular GSG supports the +// Description: Returns true if this particular GSG supports the // specified Cg Shader Profile. //////////////////////////////////////////////////////////////////// bool GraphicsStateGuardian:: @@ -405,7 +426,7 @@ get_prepared_objects() { //////////////////////////////////////////////////////////////////// bool GraphicsStateGuardian:: set_gamma(PN_stdfloat gamma) { - _gamma = gamma; + _gamma = gamma; return false; } @@ -437,7 +458,7 @@ restore_gamma() { // function returns false. //////////////////////////////////////////////////////////////////// void GraphicsStateGuardian:: -traverse_prepared_textures(GraphicsStateGuardian::TextureCallback *func, +traverse_prepared_textures(GraphicsStateGuardian::TextureCallback *func, void *callback_arg) { ReMutexHolder holder(_prepared_objects->_lock); PreparedGraphicsObjects::Textures::const_iterator ti; @@ -702,20 +723,6 @@ void GraphicsStateGuardian:: release_index_buffer(IndexBufferContext *) { } -//////////////////////////////////////////////////////////////////// -// Function: GraphicsStateGuardian::get_supports_occlusion_query -// Access: Public, Virtual -// Description: Returns true if this GSG supports an occlusion query. -// If this is true, then begin_occlusion_query() and -// end_occlusion_query() may be called to bracket a -// sequence of draw_triangles() (or whatever) calls to -// measure pixels that pass the depth test. -//////////////////////////////////////////////////////////////////// -bool GraphicsStateGuardian:: -get_supports_occlusion_query() const { - return _supports_occlusion_query; -} - //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::begin_occlusion_query // Access: Public, Virtual @@ -754,6 +761,17 @@ end_occlusion_query() { return result; } +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::issue_timer_query +// Access: Public, Virtual +// Description: Adds a timer query to the command stream, associated +// with the given PStats collector index. +//////////////////////////////////////////////////////////////////// +PT(TimerQueryContext) GraphicsStateGuardian:: +issue_timer_query(int pstats_index) { + return NULL; +} + //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::dispatch_compute // Access: Public, Virtual @@ -888,7 +906,7 @@ compute_distance_to(const LPoint3 &point) const { // the need for a separate routine to fetch these values. // // The "altered" bits indicate what parts of the -// state_and_transform have changed since the last +// state_and_transform have changed since the last // time this particular ShaderMatSpec was evaluated. // This may allow data to be cached and not reevaluated. // @@ -896,7 +914,7 @@ compute_distance_to(const LPoint3 &point) const { const LMatrix4 *GraphicsStateGuardian:: fetch_specified_value(Shader::ShaderMatSpec &spec, int altered) { LVecBase3 v; - + if (altered & spec._dep[0]) { const LMatrix4 *t = fetch_specified_part(spec._part[0], spec._arg[0], spec._cache[0]); if (t != &spec._cache[0]) { @@ -909,7 +927,7 @@ fetch_specified_value(Shader::ShaderMatSpec &spec, int altered) { spec._cache[1] = *t; } } - + switch(spec._func) { case Shader::SMF_compose: spec._value.multiply(spec._cache[0], spec._cache[1]); @@ -1470,6 +1488,29 @@ begin_frame(Thread *current_thread) { _state_rs = RenderState::make_empty(); _state_mask.clear(); +#ifdef DO_PSTATS + // We have to do this here instead of in GraphicsEngine because + // we need a current context to issue timer queries. + int frame = ClockObject::get_global_clock()->get_frame_count(); + if (_last_query_frame < frame) { + _last_query_frame = frame; + _timer_queries_pcollector.clear_level(); + + // Now is a good time to flush previous frame's queries. We + // may not actually have all of the previous frame's results + // in yet, but that's okay; the GPU data is allowed to lag a + // few frames behind. + flush_timer_queries(); + + if (_timer_queries_active) { + // Issue a stop and start event for collector 0, marking the + // beginning of the new frame. + issue_timer_query(0x8000); + issue_timer_query(0x0000); + } + } +#endif + return !_needs_reset; } @@ -1566,6 +1607,138 @@ end_frame(Thread *current_thread) { _prepared_objects->_graphics_memory_lru.begin_epoch(); } +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::flush_timer_queries +// Access: Public +// Description: Called by the graphics engine on the draw thread +// to check the status of the running timer queries +// and submit their results to the PStats server. +//////////////////////////////////////////////////////////////////// +void GraphicsStateGuardian:: +flush_timer_queries() { +#ifdef DO_PSTATS + // This uses the lower-level PStats interfaces for now because + // of all the unnecessary overhead that would otherwise be incurred + // when adding such a large amount of data at once. + + PStatClient *client = PStatClient::get_global_pstats(); + + if (!client->client_is_connected()) { + _timer_queries_active = false; + return; + } + + if (!_timer_queries_active) { + if (pstats_gpu_timing && _supports_timer_query) { + // Check if timer queries should be enabled. + _timer_queries_active = true; + } else { + return; + } + } + + // Currently, we use one thread per GSG, for convenience. In the + // future, we may want to try and use one thread per graphics card. + if (_pstats_gpu_thread == -1) { + _pstats_gpu_thread = client->make_gpu_thread(get_driver_renderer()).get_index(); + } + PStatThread gpu_thread(client, _pstats_gpu_thread); + + // Get the results of all the timer queries. + int first = 0; + if (!_pending_timer_queries.empty()) { + int count = _pending_timer_queries.size(); + if (count == 0) { + return; + } + + PStatGPUTimer timer(this, _wait_timer_pcollector); + + if (_last_num_queried > 0) { + // We know how many queries were available last frame, and this + // usually stays fairly constant, so use this as a starting point. + int i = min(_last_num_queried, count) - 1; + + if (_pending_timer_queries[i]->is_answer_ready()) { + first = count; + while (i < count) { + if (!_pending_timer_queries[++i]->is_answer_ready()) { + first = i; + break; + } + } + } else { + first = 0; + while (i > 0) { + if (_pending_timer_queries[--i]->is_answer_ready()) { + first = i + 1; + break; + } + } + } + } else { + // We figure out which tasks the GPU has already finished by doing + // a binary search for the first query that does not have an answer + // ready. We know then that everything before that must be ready. + while (count > 0) { + int step = count / 2; + int i = first + step; + if (_pending_timer_queries[i]->is_answer_ready()) { + first += step + 1; + count -= step + 1; + } else { + count = step; + } + } + } + + if (first <= 0) { + return; + } + + _last_num_queried = first; + + int frame_index = ClockObject::get_global_clock()->get_frame_count(); + + for (int i = 0; i < first; ++i) { + CPT(TimerQueryContext) query = _pending_timer_queries[i]; + + double time_data = query->get_timestamp(); // + _timer_delta; + + if (query->_pstats_index == _command_latency_pcollector.get_index()) { + // Special case for the latency pcollector. + PStatCollectorDef *cdef; + cdef = client->get_collector_ptr(query->_pstats_index)->get_def(client, query->_pstats_index); + _pstats_gpu_data.add_level(query->_pstats_index, time_data * cdef->_factor); + + } else if (query->_pstats_index & 0x8000) { + _pstats_gpu_data.add_stop(query->_pstats_index & 0x7fff, time_data); + + } else { + _pstats_gpu_data.add_start(query->_pstats_index & 0x7fff, time_data); + } + + // We found an end-frame marker (a stop event for collector 0). + // This means that the GPU actually caught up with that frame, + // and we can flush the GPU thread's frame data to the pstats server. + if (query->_pstats_index == 0x8000) { + gpu_thread.add_frame(_pstats_gpu_data); + _pstats_gpu_data.clear(); + } + } + } + + if (first > 0) { + // Do this out of the scope of _wait_timer_pcollector. + _pending_timer_queries.erase( + _pending_timer_queries.begin(), + _pending_timer_queries.begin() + first + ); + _timer_queries_pcollector.add_level_now(first); + } +#endif +} + //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::depth_offset_decals // Access: Public, Virtual @@ -1819,7 +1992,7 @@ reset() { delete _stencil_render_states; _stencil_render_states = 0; } - _stencil_render_states = new StencilRenderStates (this); + _stencil_render_states = new StencilRenderStates(this); } //////////////////////////////////////////////////////////////////// @@ -1935,12 +2108,12 @@ do_issue_clip_plane() { enable_clip_planes(true); _clip_planes_enabled = true; } - + enable_clip_plane(num_enabled, true); if (num_enabled == 0) { begin_bind_clip_planes(); } - + bind_clip_plane(plane, num_enabled); num_enabled++; } @@ -2123,7 +2296,7 @@ do_issue_light() { if (num_enabled == 0) { begin_bind_lights(); } - + light_obj->bind(this, light, num_enabled); num_enabled++; } @@ -2278,24 +2451,24 @@ create_gamma_table (PN_stdfloat gamma, unsigned short *red_table, unsigned short // avoid divide by zero and negative exponents gamma = 1.0; } - + for (i = 0; i < 256; i++) { double g; double x; PN_stdfloat gamma_correction; - + x = ((double) i / 255.0); - gamma_correction = 1.0 / gamma; + gamma_correction = 1.0 / gamma; x = pow (x, (double) gamma_correction); if (x > 1.00) { x = 1.0; } - g = x * 65535.0; + g = x * 65535.0; red_table [i] = (int)g; green_table [i] = (int)g; blue_table [i] = (int)g; - } + } } //////////////////////////////////////////////////////////////////// @@ -2638,7 +2811,7 @@ async_reload_texture(TextureContext *tc) { string task_name = string("reload:") + tc->get_texture()->get_name(); PT(AsyncTaskManager) task_mgr = _loader->get_task_manager(); - + // See if we are already loading this task. AsyncTaskCollection orig_tasks = task_mgr->find_tasks(task_name); int num_tasks = orig_tasks.get_num_tasks(); @@ -2655,7 +2828,7 @@ async_reload_texture(TextureContext *tc) { // This texture has not yet been queued to be reloaded. Queue it up // now. - PT(AsyncTask) request = + PT(AsyncTask) request = new TextureReloadRequest(task_name, _prepared_objects, tc->get_texture(), _supports_compressed_texture); @@ -2762,20 +2935,20 @@ make_shadow_buffer(const NodePath &light_np, GraphicsOutputBase *host) { //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_driver_vendor // Access: Public, Virtual -// Description: Returns the vendor of the video card driver +// Description: Returns the vendor of the video card driver //////////////////////////////////////////////////////////////////// string GraphicsStateGuardian:: get_driver_vendor() { - return string("0"); + return string(); } //////////////////////////////////////////////////////////////////// -// Function: GraphicsStateGuardian::get_driver_vendor +// Function: GraphicsStateGuardian::get_driver_renderer // Access: Public, Virtual // Description: Returns GL_Renderer //////////////////////////////////////////////////////////////////// string GraphicsStateGuardian::get_driver_renderer() { - return string("0"); + return string(); } //////////////////////////////////////////////////////////////////// @@ -2783,12 +2956,12 @@ string GraphicsStateGuardian::get_driver_renderer() { // Access: Public, Virtual // Description: Returns driver version // This has an implementation-defined meaning, and may -// be "0" if the particular graphics implementation +// be "" if the particular graphics implementation // does not provide a way to query this information. //////////////////////////////////////////////////////////////////// string GraphicsStateGuardian:: get_driver_version() { - return string("0"); + return string(); } //////////////////////////////////////////////////////////////////// diff --git a/panda/src/display/graphicsStateGuardian.h b/panda/src/display/graphicsStateGuardian.h index 996d5cfc2e..883a57c0c2 100644 --- a/panda/src/display/graphicsStateGuardian.h +++ b/panda/src/display/graphicsStateGuardian.h @@ -44,6 +44,7 @@ #include "bitMask.h" #include "texture.h" #include "occlusionQueryContext.h" +#include "timerQueryContext.h" #include "stencilRenderStates.h" #include "loader.h" #include "shaderAttrib.h" @@ -151,6 +152,10 @@ PUBLISHED: INLINE bool get_supports_two_sided_stencil() const; INLINE bool get_supports_geometry_instancing() const; + INLINE bool get_supports_occlusion_query() const; + INLINE bool get_supports_timer_query() const; + INLINE bool get_timer_queries_active() const; + INLINE int get_max_color_targets() const; INLINE int get_maximum_simultaneous_render_targets() const; @@ -200,7 +205,7 @@ PUBLISHED: virtual int get_driver_version_minor(); virtual int get_driver_shader_version_major(); virtual int get_driver_shader_version_minor(); - + bool set_scene(SceneSetup *scene_setup); virtual SceneSetup *get_scene() const; @@ -222,10 +227,11 @@ public: virtual IndexBufferContext *prepare_index_buffer(GeomPrimitive *data); virtual void release_index_buffer(IndexBufferContext *ibc); - virtual bool get_supports_occlusion_query() const; virtual void begin_occlusion_query(); virtual PT(OcclusionQueryContext) end_occlusion_query(); + virtual PT(TimerQueryContext) issue_timer_query(int pstats_index); + virtual void dispatch_compute(int size_x, int size_y, int size_z); virtual PT(GeomMunger) get_geom_munger(const RenderState *state, @@ -239,7 +245,7 @@ public: virtual PN_stdfloat compute_distance_to(const LPoint3 &point) const; virtual void clear(DrawableRegion *clearable); - + const LMatrix4 *fetch_specified_value(Shader::ShaderMatSpec &spec, int altered); const LMatrix4 *fetch_specified_part(Shader::ShaderMatInput input, InternalName *name, LMatrix4 &t); const Shader::ShaderPtrData *fetch_ptr_parameter(const Shader::ShaderPtrSpec& spec); @@ -260,6 +266,8 @@ PUBLISHED: public: virtual void end_frame(Thread *current_thread); + void flush_timer_queries(); + void set_current_properties(const FrameBufferProperties *properties); virtual bool depth_offset_decals(); @@ -375,7 +383,7 @@ protected: // This bitmask contains a 1 bit everywhere that _state_rs has a // known value. If a bit is 0, the corresponding state must be // re-sent. - // + // // Derived GSGs should initialize _inv_state_mask in reset() as a mask of // 1's where they don't care, and 0's where they do care, about the state. RenderState::SlotMask _state_mask; @@ -406,7 +414,7 @@ protected: unsigned int _color_write_mask; - CPT(DisplayRegion) _current_display_region; + PT(DisplayRegion) _current_display_region; Lens::StereoChannel _current_stereo_channel; int _current_tex_view_offset; CPT(Lens) _current_lens; @@ -481,6 +489,19 @@ protected: bool _supports_occlusion_query; PT(OcclusionQueryContext) _current_occlusion_query; + bool _supports_timer_query; +#ifdef DO_PSTATS + int _pstats_gpu_thread; + bool _timer_queries_active; + PStatFrameData _pstats_gpu_data; + + int _last_query_frame; + int _last_num_queried; + //double _timer_delta; + typedef pdeque TimerQueryQueue; + TimerQueryQueue _pending_timer_queries; +#endif + bool _copy_texture_inverted; bool _supports_multisample; bool _supports_generate_mipmap; @@ -520,13 +541,13 @@ protected: PN_stdfloat _gamma; Texture::QualityLevel _texture_quality_override; - + ShaderGenerator* _shader_generator; #ifndef NDEBUG PT(Texture) _flash_texture; #endif - + public: // Statistics static PStatCollector _vertex_buffer_switch_pcollector; @@ -558,7 +579,18 @@ public: static PStatCollector _draw_set_state_pcollector; static PStatCollector _clear_pcollector; static PStatCollector _flush_pcollector; + static PStatCollector _compute_dispatch_pcollector; static PStatCollector _wait_occlusion_pcollector; + static PStatCollector _wait_timer_pcollector; + static PStatCollector _timer_queries_pcollector; + static PStatCollector _command_latency_pcollector; + + static PStatCollector _prepare_pcollector; + static PStatCollector _prepare_texture_pcollector; + static PStatCollector _prepare_geom_pcollector; + static PStatCollector _prepare_shader_pcollector; + static PStatCollector _prepare_vertex_buffer_pcollector; + static PStatCollector _prepare_index_buffer_pcollector; // A whole slew of collectors to measure the cost of individual // state changes. These are disabled by default. diff --git a/panda/src/display/pStatGPUTimer.I b/panda/src/display/pStatGPUTimer.I new file mode 100644 index 0000000000..27f4938917 --- /dev/null +++ b/panda/src/display/pStatGPUTimer.I @@ -0,0 +1,61 @@ +// Filename: pStatGPUTimer.I +// Created by: rdb (21Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + + +#ifdef DO_PSTATS + +//////////////////////////////////////////////////////////////////// +// Function: PStatGPUTimer::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE PStatGPUTimer:: +PStatGPUTimer(GraphicsStateGuardian *gsg, PStatCollector &collector) : + PStatTimer(collector), + _gsg(gsg) +{ + if (gsg->get_timer_queries_active()) { + gsg->issue_timer_query(collector.get_index()); + //cerr << "issuing " << collector << " active " << collector.is_active() << "\n"; + } +} + +//////////////////////////////////////////////////////////////////// +// Function: PStatGPUTimer::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE PStatGPUTimer:: +PStatGPUTimer(GraphicsStateGuardian *gsg, PStatCollector &collector, Thread *current_thread) : + PStatTimer(collector, current_thread), + _gsg(gsg) +{ + if (gsg->get_timer_queries_active()) { + gsg->issue_timer_query(collector.get_index()); + } +} + +//////////////////////////////////////////////////////////////////// +// Function: PStatGPUTimer::Destructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE PStatGPUTimer:: +~PStatGPUTimer() { + if (_gsg->get_timer_queries_active()) { + _gsg->issue_timer_query(_collector.get_index() | 0x8000); + } +} + +#endif diff --git a/panda/src/display/pStatGPUTimer.h b/panda/src/display/pStatGPUTimer.h new file mode 100644 index 0000000000..4c67e3ea4c --- /dev/null +++ b/panda/src/display/pStatGPUTimer.h @@ -0,0 +1,65 @@ +// Filename: pStatGPUTimer.h +// Created by: rdb (21Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#ifndef PSTATGPUTIMER_H +#define PSTATGPUTIMER_H + +#include "pandabase.h" +#include "pStatTimer.h" +#include "pStatCollector.h" +#include "config_pstats.h" +#include "timerQueryContext.h" + +class Thread; +class GraphicsStateGuardian; + +//////////////////////////////////////////////////////////////////// +// Class : PStatGPUTimer +// Description : This is a special type of PStatTimer that also +// uses a timer query on the GSG to measure how long +// a task actually takes to execute on the GPU, rather +// than how long it took for the API commands to be +// queued up. +// +// This class may only be used on the draw thread. +// +// At present, it tracks both the CPU time (like a +// regular PStatTimer does) and the GPU time, which +// is recorded using a special PStatThread. +//////////////////////////////////////////////////////////////////// +class EXPCL_PANDA_DISPLAY PStatGPUTimer : public PStatTimer { +public: +#ifdef DO_PSTATS + INLINE PStatGPUTimer(GraphicsStateGuardian *gsg, + PStatCollector &collector); + INLINE PStatGPUTimer(GraphicsStateGuardian *gsg, + PStatCollector &collector, + Thread *current_thread); + INLINE ~PStatGPUTimer(); + + GraphicsStateGuardian *_gsg; + +private: +#else // DO_PSTATS + + INLINE PStatGPUTimer(GraphicsStateGuardian *, PStatCollector &) { } + INLINE PStatGPUTimer(GraphicsStateGuardian *, PStatCollector &, Thread *) { } + INLINE ~PStatGPUTimer() { } + +#endif // DO_PSTATS +}; + +#include "pStatGPUTimer.I" + +#endif diff --git a/panda/src/glstuff/glCgShaderContext_src.cxx b/panda/src/glstuff/glCgShaderContext_src.cxx index 50ecab80d0..99a64092a5 100755 --- a/panda/src/glstuff/glCgShaderContext_src.cxx +++ b/panda/src/glstuff/glCgShaderContext_src.cxx @@ -18,7 +18,7 @@ #include "Cg/cgGL.h" -#include "pStatTimer.h" +#include "pStatGPUTimer.h" TypeHandle CLP(CgShaderContext)::_type_handle; @@ -50,7 +50,7 @@ CLP(CgShaderContext)(CLP(GraphicsStateGuardian) *glgsg, Shader *s) : ShaderConte nassertv(s->get_language() == Shader::SL_Cg); - // Ask the shader to compile itself for us and + // Ask the shader to compile itself for us and // to give us the resulting Cg program objects. if (!s->cg_compile_for(_glgsg->_shader_caps, _cg_context, @@ -223,7 +223,7 @@ unbind() { //////////////////////////////////////////////////////////////////// void CLP(CgShaderContext):: issue_parameters(int altered) { - PStatTimer timer(_glgsg->_draw_set_state_shader_parameters_pcollector); + //PStatGPUTimer timer(_glgsg, _glgsg->_draw_set_state_shader_parameters_pcollector); if (!valid()) { return; @@ -233,9 +233,9 @@ issue_parameters(int altered) { for (int i=0; i<(int)_shader->_ptr_spec.size(); i++) { if (altered & (_shader->_ptr_spec[i]._dep[0] | _shader->_ptr_spec[i]._dep[1])) { const Shader::ShaderPtrSpec& _ptr = _shader->_ptr_spec[i]; - Shader::ShaderPtrData* ptr_data = + Shader::ShaderPtrData* ptr_data = const_cast< Shader::ShaderPtrData*>(_glgsg->fetch_ptr_parameter(_ptr)); - + if (ptr_data == NULL){ //the input is not contained in ShaderPtrData release_resources(); return; @@ -249,14 +249,14 @@ issue_parameters(int altered) { int input_size = _ptr._dim[0] * _ptr._dim[1] * _ptr._dim[2]; // dimension is negative only if the parameter had the (deprecated)k_ prefix. - if ((input_size > ptr_data->_size) && (_ptr._dim[0] > 0)) { - GLCAT.error() << _ptr._id._name << ": incorrect number of elements, expected " + if ((input_size > ptr_data->_size) && (_ptr._dim[0] > 0)) { + GLCAT.error() << _ptr._id._name << ": incorrect number of elements, expected " << input_size <<" got " << ptr_data->_size << "\n"; release_resources(); return; } CGparameter p = _cg_parameter_map[_ptr._id._seqno]; - + switch (ptr_data->_type) { case Shader::SPT_float: switch(_ptr._info._class) { @@ -271,7 +271,7 @@ issue_parameters(int altered) { case Shader::SAC_matrix: cgGLSetMatrixParameterfc(p,(float*)ptr_data->_ptr); continue; case Shader::SAC_array: { switch(_ptr._info._subclass) { - case Shader::SAC_scalar: + case Shader::SAC_scalar: cgGLSetParameterArray1f(p,0,_ptr._dim[0],(float*)ptr_data->_ptr); continue; case Shader::SAC_vector: switch(_ptr._dim[2]) { @@ -298,7 +298,7 @@ issue_parameters(int altered) { case Shader::SAC_matrix: cgGLSetMatrixParameterdc(p,(double*)ptr_data->_ptr); continue; case Shader::SAC_array: { switch(_ptr._info._subclass) { - case Shader::SAC_scalar: + case Shader::SAC_scalar: cgGLSetParameterArray1d(p,0,_ptr._dim[0],(double*)ptr_data->_ptr); continue; case Shader::SAC_vector: switch(_ptr._dim[2]) { @@ -323,8 +323,8 @@ issue_parameters(int altered) { case Shader::SAT_vec4: cgSetParameter4iv(p,(int*)ptr_data->_ptr); continue; } } - default: GLCAT.error() << _ptr._id._name << ":" << "unrecognized parameter type\n"; - release_resources(); + default: GLCAT.error() << _ptr._id._name << ":" << "unrecognized parameter type\n"; + release_resources(); return; } } diff --git a/panda/src/glstuff/glGraphicsBuffer_src.cxx b/panda/src/glstuff/glGraphicsBuffer_src.cxx index 232d33044a..671003a1f1 100644 --- a/panda/src/glstuff/glGraphicsBuffer_src.cxx +++ b/panda/src/glstuff/glGraphicsBuffer_src.cxx @@ -27,7 +27,10 @@ CLP(GraphicsBuffer)(GraphicsEngine *engine, GraphicsPipe *pipe, int flags, GraphicsStateGuardian *gsg, GraphicsOutput *host) : - GraphicsBuffer(engine, pipe, name, fb_prop, win_prop, flags, gsg, host) + GraphicsBuffer(engine, pipe, name, fb_prop, win_prop, flags, gsg, host), + _bind_texture_pcollector(_draw_window_pcollector, "Bind textures"), + _generate_mipmap_pcollector(_draw_window_pcollector, "Generate mipmaps"), + _resolve_multisample_pcollector(_draw_window_pcollector, "Resolve multisamples") { CLP(GraphicsStateGuardian) *glgsg; @@ -175,7 +178,7 @@ begin_frame(FrameMode mode, Thread *current_thread) { CLP(GraphicsStateGuardian) *glgsg; DCAST_INTO_R(glgsg, _gsg, false); - pvector::iterator it; + TextureContexts::iterator it; for (it = _texture_contexts.begin(); it != _texture_contexts.end(); ++it) { CLP(TextureContext) *gtc = *it; @@ -274,6 +277,8 @@ rebuild_bitplanes() { return; } + PStatGPUTimer timer(glgsg, _bind_texture_pcollector); + // Calculate bitplane size. This can be larger than the buffer. if (_creation_flags & GraphicsPipe::BF_size_track_host) { if (_host->get_size() != _size) { @@ -437,6 +442,17 @@ rebuild_bitplanes() { // Bind the FBO if (_fbo[layer] == 0) { glgsg->_glGenFramebuffers(1, &_fbo[layer]); + + if (glgsg->_use_object_labels) { + if (num_fbos > 1) { + GLchar name[128]; + GLsizei len = snprintf(name, 128, "%s[%d]", _name.c_str(), layer); + glgsg->_glObjectLabel(GL_FRAMEBUFFER, _fbo[layer], len, name); + } else { + glgsg->_glObjectLabel(GL_FRAMEBUFFER, _fbo[layer], _name.size(), _name.data()); + } + } + if (_fbo[layer] == 0) { report_my_gl_errors(); return; @@ -1131,6 +1147,8 @@ generate_mipmaps() { CLP(GraphicsStateGuardian) *glgsg; DCAST_INTO_V(glgsg, _gsg); + //PStatGPUTimer timer(glgsg, _generate_mipmap_pcollector); + pvector::iterator it; for (it = _texture_contexts.begin(); it != _texture_contexts.end(); ++it) { CLP(TextureContext) *gtc = *it; @@ -1168,7 +1186,8 @@ end_frame(FrameMode mode, Thread *current_thread) { copy_to_textures(); } - // Unbind the FBO + // Unbind the FBO. TODO: calling bind_fbo is slow, so we should + // probably move this to begin_frame to prevent unnecessary calls. CLP(GraphicsStateGuardian) *glgsg; DCAST_INTO_V(glgsg, _gsg); glgsg->bind_fbo(0); @@ -1604,10 +1623,12 @@ check_host_valid() { //////////////////////////////////////////////////////////////////// void CLP(GraphicsBuffer):: resolve_multisamples() { + nassertv(_fbo.size() > 0); + CLP(GraphicsStateGuardian) *glgsg; DCAST_INTO_V(glgsg, _gsg); - nassertv(_fbo.size() > 0); + PStatGPUTimer timer(glgsg, _resolve_multisample_pcollector); if (gl_enable_memory_barriers) { // Issue memory barriers as necessary to make sure that the @@ -1631,7 +1652,7 @@ resolve_multisamples() { } glgsg->_glBindFramebuffer(GL_DRAW_FRAMEBUFFER_EXT, fbo); glgsg->_glBindFramebuffer(GL_READ_FRAMEBUFFER_EXT, _fbo_multisample); - + // If the depth buffer is shared, resolve it only on the last to render FBO. bool do_depth_blit = false; if (_rbm[RTP_depth_stencil] != 0 || _rbm[RTP_depth] != 0) { diff --git a/panda/src/glstuff/glGraphicsBuffer_src.h b/panda/src/glstuff/glGraphicsBuffer_src.h index 34d9cfa0a4..653e5dc8b2 100644 --- a/panda/src/glstuff/glGraphicsBuffer_src.h +++ b/panda/src/glstuff/glGraphicsBuffer_src.h @@ -34,7 +34,7 @@ // * Can render onto a texture without clearing it first. // * Supports multisample antialiased rendering. // -// Some of these deserve a little explanation. +// Some of these deserve a little explanation. // Auxiliary bitplanes are additional bitplanes above // and beyond the normal depth,stencil,color. One can // use them to render out multiple textures in a single @@ -43,14 +43,14 @@ // buffer will be equal to the texture's previous // contents. This alo means you can meaningfully // share a bitplane between two buffers by binding -// the same texture to both buffers. +// the same texture to both buffers. // // If either of the necessary OpenGL extensions is not // available, then the glGraphicsBuffer will not be // available (although it may still be possible to // create a wglGraphicsBuffer or glxGraphicsBuffer). // -// This class now also uses the extensions +// This class now also uses the extensions // EXT_framebuffer_multisample and EXT_framebuffer_blit // to allow for multisample antialiasing these offscreen // render targets. If these extensions are unavailable @@ -87,13 +87,13 @@ public: protected: virtual void close_buffer(); virtual bool open_buffer(); - + void check_host_valid(); - + void report_my_errors(int line, const char *file); private: - + void bind_slot(int layer, bool rb_resize, Texture **attach, RenderTexturePlane plane, GLenum attachpoint); void bind_slot_multisample(bool rb_resize, Texture **attach, @@ -127,7 +127,8 @@ private: // List of textures for which we might have to generate mipmaps // after rendering one frame. - pvector _texture_contexts; + typedef pvector TextureContexts; + TextureContexts _texture_contexts; // The cube map face we are currently drawing to or have just // finished drawing to, or -1 if we are not drawing to a cube map. @@ -136,10 +137,14 @@ private: bool _initial_clear; bool _needs_rebuild; UpdateSeq _last_textures_seq; - + CLP(GraphicsBuffer) *_shared_depth_buffer; list _shared_depth_buffer_list; - + + PStatCollector _bind_texture_pcollector; + PStatCollector _generate_mipmap_pcollector; + PStatCollector _resolve_multisample_pcollector; + public: static TypeHandle get_class_type() { return _type_handle; diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.I b/panda/src/glstuff/glGraphicsStateGuardian_src.I index 9008a3cd23..f776d69c2e 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.I +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.I @@ -27,6 +27,7 @@ INLINE bool CLP(GraphicsStateGuardian):: report_errors(int line, const char *source_file) { #ifndef NDEBUG + PStatTimer timer(_check_error_pcollector); GLenum error_code = glGetError(); if (error_code != GL_NO_ERROR) { int error_count = 0; @@ -46,6 +47,7 @@ INLINE void CLP(GraphicsStateGuardian):: report_my_errors(int line, const char *source_file) { #ifndef NDEBUG if (_check_errors) { + PStatTimer timer(_check_error_pcollector); GLenum error_code = glGetError(); if (error_code != GL_NO_ERROR) { if (!report_errors_loop(line, source_file, error_code, _error_count)) { @@ -69,6 +71,7 @@ report_my_errors(int line, const char *source_file) { //////////////////////////////////////////////////////////////////// INLINE bool CLP(GraphicsStateGuardian):: clear_errors(int line, const char *source_file) { + PStatTimer timer(_check_error_pcollector); GLenum error_code = glGetError(); if (error_code != GL_NO_ERROR) { int error_count = 0; @@ -92,6 +95,7 @@ clear_errors(int line, const char *source_file) { INLINE void CLP(GraphicsStateGuardian):: clear_my_errors(int line, const char *source_file) { if (_check_errors) { + PStatTimer timer(_check_error_pcollector); GLenum error_code = glGetError(); if (error_code != GL_NO_ERROR) { int error_count = 0; @@ -743,7 +747,7 @@ get_clip_plane_id(int index) const { //////////////////////////////////////////////////////////////////// // Function: CLP(GraphicsStateGuardian)::get_supports_framebuffer_multisample // Access: Public -// Description: Returns if this glGsg supports multisample +// Description: Returns if this glGsg supports multisample // antialiasing for framebuffer objects. //////////////////////////////////////////////////////////////////// INLINE bool CLP(GraphicsStateGuardian):: @@ -754,7 +758,7 @@ get_supports_framebuffer_multisample() { //////////////////////////////////////////////////////////////////// // Function: CLP(GraphicsStateGuardian)::get_supports_framebuffer_multisample // Access: Public -// Description: Returns if this glGsg supports multisample +// Description: Returns if this glGsg supports multisample // antialiasing for framebuffer objects. //////////////////////////////////////////////////////////////////// INLINE bool CLP(GraphicsStateGuardian):: @@ -766,7 +770,7 @@ get_supports_framebuffer_multisample_coverage_nv() { //////////////////////////////////////////////////////////////////// // Function: CLP(GraphicsStateGuardian)::get_supports_framebuffer_blit // Access: Public -// Description: Returns if this glGsg supports multisample +// Description: Returns if this glGsg supports multisample // antialiasing for framebuffer objects. //////////////////////////////////////////////////////////////////// INLINE bool CLP(GraphicsStateGuardian):: @@ -778,7 +782,7 @@ get_supports_framebuffer_blit() { //////////////////////////////////////////////////////////////////// // Function: GLGraphicsStateGuardian::UsageTextureKey::Constructor // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// INLINE CLP(GraphicsStateGuardian)::UsageTextureKey:: UsageTextureKey(int x_size, int y_size) : @@ -792,7 +796,7 @@ UsageTextureKey(int x_size, int y_size) : //////////////////////////////////////////////////////////////////// // Function: GLGraphicsStateGuardian::UsageTextureKey::operator < // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// INLINE bool CLP(GraphicsStateGuardian)::UsageTextureKey:: operator < (const CLP(GraphicsStateGuardian)::UsageTextureKey &other) const { diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 0050471808..818e03e7bc 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -1,6 +1,6 @@ // Filename: glGraphicsStateGuardian_src.cxx // Created by: drose (02Feb99) -// Updated by: fperazzi, PandaSE (05May10) (added +// Updated by: fperazzi, PandaSE (05May10) (added // get_supports_cg_profile) // //////////////////////////////////////////////////////////////////// @@ -77,7 +77,11 @@ PStatCollector CLP(GraphicsStateGuardian)::_load_display_list_pcollector("Draw:T PStatCollector CLP(GraphicsStateGuardian)::_primitive_batches_display_list_pcollector("Primitive batches:Display lists"); PStatCollector CLP(GraphicsStateGuardian)::_vertices_display_list_pcollector("Vertices:Display lists"); PStatCollector CLP(GraphicsStateGuardian)::_vertices_immediate_pcollector("Vertices:Immediate mode"); -PStatCollector CLP(GraphicsStateGuardian)::_compute_dispatch_pcollector("Draw:Compute dispatch"); +PStatCollector CLP(GraphicsStateGuardian)::_memory_barrier_pcollector("Draw:Memory barriers"); +PStatCollector CLP(GraphicsStateGuardian)::_vertex_array_update_pcollector("Draw:Update arrays"); +PStatCollector CLP(GraphicsStateGuardian)::_texture_update_pcollector("Draw:Update texture"); +PStatCollector CLP(GraphicsStateGuardian)::_fbo_bind_pcollector("Draw:Bind FBO"); +PStatCollector CLP(GraphicsStateGuardian)::_check_error_pcollector("Draw:Check errors"); #ifdef OPENGLES_2 PT(Shader) CLP(GraphicsStateGuardian)::_default_shader = NULL; @@ -315,7 +319,7 @@ CLP(GraphicsStateGuardian)(GraphicsEngine *engine, GraphicsPipe *pipe) : #ifdef DO_PSTATS if (gl_finish) { GLCAT.warning() - << "The config variable gl-finish is set True. This may have a substantial negative impact your render performance.\n"; + << "The config variable gl-finish is set to true. This may have a substantial negative impact on your render performance.\n"; } #endif // DO_PSTATS } @@ -441,6 +445,7 @@ reset() { // Initialize OpenGL debugging output first, if enabled and supported. _supports_debug = false; + _use_object_labels = false; #ifndef OPENGLES_1 if (gl_debug) { PFNGLDEBUGMESSAGECALLBACKPROC _glDebugMessageCallback; @@ -452,14 +457,19 @@ reset() { get_extension_func("glDebugMessageCallbackKHR"); _glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) get_extension_func("glDebugMessageControlKHR"); + _glObjectLabel = (PFNGLOBJECTLABELPROC) + get_extension_func("glObjectLabelKHR"); #else _glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) get_extension_func("glDebugMessageCallback"); _glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) get_extension_func("glDebugMessageControl"); + _glObjectLabel = (PFNGLOBJECTLABELPROC) + get_extension_func("glObjectLabel"); #endif glEnable(GL_DEBUG_OUTPUT); // Not supported in ARB version _supports_debug = true; + _use_object_labels = gl_debug_object_labels; } else if (has_extension("GL_ARB_debug_output")) { _glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) @@ -681,7 +691,7 @@ reset() { _supports_depth_stencil = has_extension("GL_EXT_packed_depth_stencil") || has_extension("GL_OES_packed_depth_stencil"); } - + _supports_3d_texture = false; if (is_at_least_gl_version(1, 2)) { @@ -1038,7 +1048,7 @@ reset() { // ATI drivers have never provided correct shadow support. _supports_shadow_filter = false; } - + _supports_texture_combine = has_extension("GL_ARB_texture_env_combine") || is_at_least_gl_version(1, 3) || is_at_least_gles_version(1, 1); _supports_texture_saved_result = @@ -1095,7 +1105,7 @@ reset() { _shader_caps._active_vprofile = (int)CG_PROFILE_ARBVP1; _shader_caps._active_fprofile = (int)CG_PROFILE_ARBFP1; _shader_caps._active_gprofile = (int)CG_PROFILE_UNKNOWN; // No geometry shader if only using basic - } else { + } else { _shader_caps._active_vprofile = (int)cgGLGetLatestProfile(CG_GL_VERTEX); _shader_caps._active_fprofile = (int)cgGLGetLatestProfile(CG_GL_FRAGMENT); _shader_caps._active_gprofile = (int)cgGLGetLatestProfile(CG_GL_GEOMETRY); @@ -1534,6 +1544,23 @@ reset() { } #endif + _supports_timer_query = false; +#if defined(DO_PSTATS) && !defined(OPENGLES) + if (is_at_least_gl_version(3, 3) || has_extension("GL_ARB_timer_query")) { + _supports_timer_query = true; + + _glQueryCounter = (PFNGLQUERYCOUNTERPROC) + get_extension_func("glQueryCounter"); + _glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) + get_extension_func("glGetQueryObjecti64v"); + _glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) + get_extension_func("glGetQueryObjectui64v"); + + _glGetInteger64v = (PFNGLGETINTEGER64VPROC) + get_extension_func("glGetInteger64v"); + } +#endif + #ifdef OPENGLES_2 // In OpenGL ES 2.x, this is supported in the core. _glBlendEquation = glBlendEquation; @@ -2085,7 +2112,7 @@ reset() { CG_PROFILE_UNKNOWN, SM_00, }; - + int index; CG_PROFILE_TO_SHADER_MODEL *cg_profile_to_shader_model; @@ -2103,7 +2130,7 @@ reset() { { GraphicsPipe *pipe; DisplayInformation *display_information; - + pipe = this->get_pipe(); if (pipe) { display_information = pipe->get_display_information (); @@ -2151,17 +2178,17 @@ reset() { //////////////////////////////////////////////////////////////////// // Function: GLGraphicsStateGuardian::finish // Access: Public, Virtual -// Description: Force the graphics card to finish drawing before +// Description: Force the graphics card to finish drawing before // returning. !!!!!HACK WARNING!!!! // glfinish does not actually wait for the graphics card to finish drawing -// only for draw calls to finish. Thus flip may not happene +// only for draw calls to finish. Thus flip may not happene // immediately. Instead we read a single pixel from -// the framebuffer. This forces the graphics card to +// the framebuffer. This forces the graphics card to // finish drawing the frame before returning. //////////////////////////////////////////////////////////////////// void CLP(GraphicsStateGuardian):: finish() { - // Rather than call glfinish which returns immediately if + // Rather than call glfinish which returns immediately if // draw commands have been submitted, we will read a single pixel // from the frame. That will force the graphics card to finish // drawing before it is called @@ -2183,7 +2210,7 @@ finish() { //////////////////////////////////////////////////////////////////// void CLP(GraphicsStateGuardian):: clear(DrawableRegion *clearable) { - PStatTimer timer(_clear_pcollector); + PStatGPUTimer timer(this, _clear_pcollector); report_my_gl_errors(); if (!clearable->is_any_clear_active()) { @@ -2467,7 +2494,7 @@ calc_projection_mat(const Lens *lens) { // projection matrix. result *= LMatrix4::scale_mat(1.0f, -1.0f, 1.0f); } - + return TransformState::make_mat(result); } @@ -2556,6 +2583,17 @@ begin_frame(Thread *current_thread) { } #endif // NDEBUG +#ifdef DO_PSTATS + /*if (_supports_timer_query) { + // Measure the difference between the OpenGL clock and the + // PStats clock. + GLint64 time_ns; + _glGetInteger64v(GL_TIMESTAMP, &time_ns); + _timer_delta = time_ns * -0.000000001; + _timer_delta += PStatClient::get_global_pstats()->get_real_time(); + }*/ +#endif + #ifndef OPENGLES_1 if (_current_properties->get_srgb_color()) { glEnable(GL_FRAMEBUFFER_SRGB); @@ -2657,6 +2695,15 @@ end_frame(Thread *current_thread) { } #endif + // Calling glFlush() at the end of the frame is particularly + // necessary if this is a single-buffered visual, so that the frame + // will be finished drawing before we return to the application. + // It's not clear what effect this has on our total frame time. + //if (_force_flush || _current_properties->is_single_buffered()) { + // gl_flush(); + //} + maybe_gl_finish(); + GraphicsStateGuardian::end_frame(current_thread); // Flush any PCollectors specific to this kind of GSG. @@ -2669,7 +2716,7 @@ end_frame(Thread *current_thread) { { LightMutexHolder holder(_lock); if (!_deleted_display_lists.empty()) { - DeletedDisplayLists::iterator ddli; + DeletedNames::iterator ddli; for (ddli = _deleted_display_lists.begin(); ddli != _deleted_display_lists.end(); ++ddli) { @@ -2682,36 +2729,30 @@ end_frame(Thread *current_thread) { _deleted_display_lists.clear(); } - // And deleted occlusion queries, too. - if (!_deleted_queries.empty()) { - DeletedDisplayLists::iterator ddli; - for (ddli = _deleted_queries.begin(); - ddli != _deleted_queries.end(); - ++ddli) { - if (GLCAT.is_debug()) { - GLCAT.debug() - << "releasing query index " << (int)(*ddli) << "\n"; + // And deleted queries, too, unless we're using query timers + // in which case we'll need to reuse lots of them. + if (!_timer_queries_active && !_deleted_queries.empty()) { + if (GLCAT.is_spam()) { + DeletedNames::iterator dqi; + for (dqi = _deleted_queries.begin(); + dqi != _deleted_queries.end(); + ++dqi) { + GLCAT.spam() + << "releasing query index " << (int)(*dqi) << "\n"; } - _glDeleteQueries(1, &(*ddli)); } + _glDeleteQueries(_deleted_queries.size(), &_deleted_queries[0]); _deleted_queries.clear(); } } #endif // OPENGLES - // Calling glFlush() at the end of the frame is particularly - // necessary if this is a single-buffered visual, so that the frame - // will be finished drawing before we return to the application. - // It's not clear what effect this has on our total frame time. - if (_force_flush || _current_properties->is_single_buffered()) { - gl_flush(); - } - maybe_gl_finish(); - #ifndef NDEBUG if (_check_errors || (_supports_debug && gl_debug)) { report_my_gl_errors(); } else { + PStatTimer timer(_check_error_pcollector); + // If _check_errors is false, we still want to check for errors // once during this frame, so that we know if anything went wrong. GLenum error_code = glGetError(); @@ -2970,48 +3011,51 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, #ifdef SUPPORT_IMMEDIATE_MODE _use_sender = !vertex_arrays; #endif - + + { + //PStatGPUTimer timer(this, _vertex_array_update_pcollector); #ifdef OPENGLES_1 - if (!update_standard_vertex_arrays(force)) { - return false; - } -#else - if (_current_shader_context == 0) { - // No shader. - if (_vertex_array_shader_context != 0) { - _vertex_array_shader_context->disable_shader_vertex_arrays(); - } if (!update_standard_vertex_arrays(force)) { return false; } - } else { - // Shader. - if (_vertex_array_shader_context == 0 || _vertex_array_shader_context->uses_standard_vertex_arrays()) { - // Previous shader used standard arrays. - if (_current_shader_context->uses_standard_vertex_arrays()) { - // So does the current, so update them. - if (!update_standard_vertex_arrays(force)) { - return false; - } - } else { - // The current shader does not, so disable them entirely. - disable_standard_vertex_arrays(); +#else + if (_current_shader_context == 0) { + // No shader. + if (_vertex_array_shader_context != 0) { + _vertex_array_shader_context->disable_shader_vertex_arrays(); } - } - if (_current_shader_context->uses_custom_vertex_arrays()) { - // The current shader also uses custom vertex arrays. - if (!_current_shader_context-> - update_shader_vertex_arrays(_vertex_array_shader_context, force)) { + if (!update_standard_vertex_arrays(force)) { return false; } } else { - _vertex_array_shader_context->disable_shader_vertex_arrays(); + // Shader. + if (_vertex_array_shader_context == 0 || _vertex_array_shader_context->uses_standard_vertex_arrays()) { + // Previous shader used standard arrays. + if (_current_shader_context->uses_standard_vertex_arrays()) { + // So does the current, so update them. + if (!update_standard_vertex_arrays(force)) { + return false; + } + } else { + // The current shader does not, so disable them entirely. + disable_standard_vertex_arrays(); + } + } + if (_current_shader_context->uses_custom_vertex_arrays()) { + // The current shader also uses custom vertex arrays. + if (!_current_shader_context-> + update_shader_vertex_arrays(_vertex_array_shader_context, force)) { + return false; + } + } else { + _vertex_array_shader_context->disable_shader_vertex_arrays(); + } } - } - _vertex_array_shader = _current_shader; - _vertex_array_shader_context = _current_shader_context; + _vertex_array_shader = _current_shader; + _vertex_array_shader_context = _current_shader_context; #endif // OPENGLES_1 + } report_my_gl_errors(); return true; @@ -3121,7 +3165,7 @@ update_standard_vertex_arrays(bool force) { Geom::NumericType numeric_type; int start; int stride; - + if (_data_reader->get_normal_info(array_reader, numeric_type, start, stride)) { if (!setup_array_data(client_pointer, array_reader, force)) { @@ -3133,7 +3177,7 @@ update_standard_vertex_arrays(bool force) { } else { glDisableClientState(GL_NORMAL_ARRAY); } - + #ifndef NDEBUG if (_show_texture_usage) { // In show_texture_usage mode, all colors are white, so as not @@ -3157,12 +3201,12 @@ update_standard_vertex_arrays(bool force) { glEnableClientState(GL_COLOR_ARRAY); } else { glDisableClientState(GL_COLOR_ARRAY); - + // Since we don't have per-vertex color, the implicit color is // white. GLPf(Color4)(1.0f, 1.0f, 1.0f, 1.0f); } - + // Now set up each of the active texture coordinate stages--or at // least those for which we're not generating texture coordinates // automatically. @@ -3175,7 +3219,7 @@ update_standard_vertex_arrays(bool force) { // This stage is not one of the stages that doesn't need // texcoords issued for it. const InternalName *name = stage->get_texcoord_name(); - + if (_data_reader->get_array_info(name, array_reader, num_values, numeric_type, start, stride)) { // The vertex data does have texcoords for this stage. @@ -3185,7 +3229,7 @@ update_standard_vertex_arrays(bool force) { glTexCoordPointer(num_values, get_numeric_type(numeric_type), stride, client_pointer + start); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - + } else { // The vertex data doesn't have texcoords for this stage (even // though they're needed). @@ -3195,10 +3239,10 @@ update_standard_vertex_arrays(bool force) { // No texcoords are needed for this stage. glDisableClientState(GL_TEXTURE_COORD_ARRAY); } - + ++stage_index; } - + // Be sure also to disable any texture stages we had enabled before. while (stage_index < _last_max_stage_index) { _glClientActiveTexture(GL_TEXTURE0 + stage_index); @@ -3305,8 +3349,7 @@ unbind_buffers() { // way." Called only from begin_draw_primitives. //////////////////////////////////////////////////////////////////// void CLP(GraphicsStateGuardian):: -disable_standard_vertex_arrays() -{ +disable_standard_vertex_arrays() { #ifndef OPENGLES_2 #ifdef SUPPORT_IMMEDIATE_MODE if (_use_sender) return; @@ -3343,7 +3386,7 @@ disable_standard_vertex_arrays() //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { - //PStatTimer timer(_draw_primitive_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { @@ -3410,7 +3453,7 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { - //PStatTimer timer(_draw_primitive_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); report_my_gl_errors(); @@ -3537,7 +3580,7 @@ draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_trifans(const GeomPrimitivePipelineReader *reader, bool force) { - //PStatTimer timer(_draw_primitive_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { GLCAT.spam() << "draw_trifans: " << *(reader->get_object()) << "\n"; @@ -3617,7 +3660,7 @@ draw_trifans(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_patches(const GeomPrimitivePipelineReader *reader, bool force) { - //PStatTimer timer(_draw_primitive_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { @@ -3693,7 +3736,7 @@ draw_patches(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { - //PStatTimer timer(_draw_primitive_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { GLCAT.spam() << "draw_lines: " << *(reader->get_object()) << "\n"; @@ -3767,7 +3810,7 @@ draw_linestrips(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_points(const GeomPrimitivePipelineReader *reader, bool force) { - //PStatTimer timer(_draw_primitive_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); #ifndef NDEBUG if (GLCAT.is_spam()) { GLCAT.spam() << "draw_points: " << *(reader->get_object()) << "\n"; @@ -3890,6 +3933,8 @@ issue_memory_barrier(GLbitfield barriers) { return; } + PStatGPUTimer timer(this, _memory_barrier_pcollector); + if (GLCAT.is_debug()) { GLCAT.debug() << "Issuing memory barriers:"; } @@ -3939,6 +3984,8 @@ issue_memory_barrier(GLbitfield barriers) { //////////////////////////////////////////////////////////////////// TextureContext *CLP(GraphicsStateGuardian):: prepare_texture(Texture *tex, int view) { + PStatGPUTimer timer(this, _prepare_texture_pcollector); + report_my_gl_errors(); // Make sure we'll support this texture when it's rendered. Don't // bother to prepare it if we won't. @@ -3950,7 +3997,7 @@ prepare_texture(Texture *tex, int view) { return NULL; } break; - + case Texture::TT_2d_texture_array: if (!_supports_2d_texture_array) { GLCAT.warning() @@ -3997,6 +4044,8 @@ update_texture(TextureContext *tc, bool force) { CLP(TextureContext) *gtc = DCAST(CLP(TextureContext), tc); if (gtc->was_image_modified() || !gtc->_has_storage) { + PStatGPUTimer timer(this, _texture_update_pcollector); + // If the texture image was modified, reload the texture. apply_texture(tc); if (gtc->was_properties_modified()) { @@ -4010,6 +4059,8 @@ update_texture(TextureContext *tc, bool force) { } } else if (gtc->was_properties_modified()) { + PStatGPUTimer timer(this, _texture_update_pcollector); + // If only the properties have been modified, we don't necessarily // need to reload the texture. apply_texture(tc); @@ -4097,6 +4148,7 @@ extract_texture_data(Texture *tex) { //////////////////////////////////////////////////////////////////// GeomContext *CLP(GraphicsStateGuardian):: prepare_geom(Geom *geom) { + PStatGPUTimer timer(this, _prepare_geom_pcollector); return new CLP(GeomContext)(geom); } @@ -4124,6 +4176,8 @@ release_geom(GeomContext *gc) { //////////////////////////////////////////////////////////////////// ShaderContext *CLP(GraphicsStateGuardian):: prepare_shader(Shader *se) { + PStatGPUTimer timer(this, _prepare_shader_pcollector); + #ifndef OPENGLES_1 ShaderContext *result = NULL; @@ -4194,6 +4248,8 @@ record_deleted_display_list(GLuint index) { VertexBufferContext *CLP(GraphicsStateGuardian):: prepare_vertex_buffer(GeomVertexArrayData *data) { if (_supports_buffers) { + PStatGPUTimer timer(this, _prepare_vertex_buffer_pcollector); + CLP(VertexBufferContext) *gvbc = new CLP(VertexBufferContext)(this, _prepared_objects, data); _glGenBuffers(1, &gvbc->_index); @@ -4252,7 +4308,7 @@ apply_vertex_buffer(VertexBufferContext *vbc, return false; } - PStatTimer timer(_load_vertex_buffer_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _load_vertex_buffer_pcollector, reader->get_current_thread()); if (gvbc->changed_size(reader) || gvbc->changed_usage_hint(reader)) { _glBufferData(GL_ARRAY_BUFFER, num_bytes, client_pointer, get_usage(reader->get_usage_hint())); @@ -4383,6 +4439,8 @@ setup_array_data(const unsigned char *&client_pointer, IndexBufferContext *CLP(GraphicsStateGuardian):: prepare_index_buffer(GeomPrimitive *data) { if (_supports_buffers) { + PStatGPUTimer timer(this, _prepare_index_buffer_pcollector); + CLP(IndexBufferContext) *gibc = new CLP(IndexBufferContext)(this, _prepared_objects, data); _glGenBuffers(1, &gibc->_index); @@ -4444,7 +4502,7 @@ apply_index_buffer(IndexBufferContext *ibc, return false; } - PStatTimer timer(_load_index_buffer_pcollector, reader->get_current_thread()); + PStatGPUTimer timer(this, _load_index_buffer_pcollector, reader->get_current_thread()); if (gibc->changed_size(reader) || gibc->changed_usage_hint(reader)) { _glBufferData(GL_ELEMENT_ARRAY_BUFFER, num_bytes, client_pointer, get_usage(reader->get_usage_hint())); @@ -4594,7 +4652,7 @@ begin_occlusion_query() { _glBeginQuery(GL_SAMPLES_PASSED, query->_index); _current_occlusion_query = query; - + report_my_gl_errors(); #endif // OPENGLES } @@ -4619,7 +4677,7 @@ end_occlusion_query() { PT(OcclusionQueryContext) result = _current_occlusion_query; GLuint index = DCAST(CLP(OcclusionQueryContext), result)->_index; - + if (GLCAT.is_debug()) { GLCAT.debug() << "ending occlusion query index " << (int)index << "\n"; @@ -4635,9 +4693,9 @@ end_occlusion_query() { static ConfigVariableInt limit_occlusion_queries("limit-occlusion-queries", 0); if (limit_occlusion_queries > 0) { if (index > (unsigned int)limit_occlusion_queries) { - PStatTimer timer(_wait_occlusion_pcollector); + PStatGPUTimer timer(this, _wait_occlusion_pcollector); GLuint result; - _glGetQueryObjectuiv(index - (unsigned int)limit_occlusion_queries, + _glGetQueryObjectuiv(index - (unsigned int)limit_occlusion_queries, GL_QUERY_RESULT, &result); } } @@ -4648,6 +4706,54 @@ end_occlusion_query() { #endif // OPENGLES } +//////////////////////////////////////////////////////////////////// +// Function: GLGraphicsStateGuardian::issue_timer_query +// Access: Public, Virtual +// Description: Adds a timer query to the command stream, associated +// with the given PStats collector index. +//////////////////////////////////////////////////////////////////// +PT(TimerQueryContext) CLP(GraphicsStateGuardian):: +issue_timer_query(int pstats_index) { +#if defined(DO_PSTATS) && !defined(OPENGLES) + nassertr(_supports_timer_query, NULL); + + PT(CLP(TimerQueryContext)) query; + + // Hack + if (pstats_index == _command_latency_pcollector.get_index()) { + query = new CLP(LatencyQueryContext)(this, pstats_index); + } else { + query = new CLP(TimerQueryContext)(this, pstats_index); + } + + if (_deleted_queries.size() >= 1) { + query->_index = _deleted_queries.back(); + _deleted_queries.pop_back(); + } else { + _glGenQueries(1, &query->_index); + + if (GLCAT.is_spam()) { + GLCAT.spam() << "Generating query for " << pstats_index + << ": " << query->_index << "\n"; + } + } + + if (_use_object_labels) { + // Assign a label to it based on the PStatCollector name. + const PStatClient *client = PStatClient::get_global_pstats(); + string name = client->get_collector_fullname(pstats_index & 0x7fff); + _glObjectLabel(GL_QUERY, query->_index, name.size(), name.data()); + } + + // Issue the timestamp query. + _glQueryCounter(query->_index, GL_TIMESTAMP); + + _pending_timer_queries.push_back(DCAST(TimerQueryContext, query)); + + return DCAST(TimerQueryContext, query); +#endif +} + //////////////////////////////////////////////////////////////////// // Function: GLGraphicsStateGuardian::dispatch_compute // Access: Public, Virtual @@ -4659,7 +4765,7 @@ dispatch_compute(int num_groups_x, int num_groups_y, int num_groups_z) { #ifndef OPENGLES maybe_gl_finish(); - PStatTimer timer(_compute_dispatch_pcollector); + PStatGPUTimer timer(this, _compute_dispatch_pcollector); nassertv(_supports_compute_shaders); nassertv(_current_shader_context != NULL); _glDispatchCompute(num_groups_x, num_groups_y, num_groups_z); @@ -4697,7 +4803,7 @@ framebuffer_copy_to_texture(Texture *tex, int view, int z, if (gl_color_mask) { glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); } - + int xo, yo, w, h; dr->get_region_pixels(xo, yo, w, h); tex->set_size_padded(w, h, tex->get_z_size()); @@ -5193,7 +5299,7 @@ do_issue_shader(bool state_has_changed) { context = shader->prepare_now(get_prepared_objects(), this); } #endif - + if (context == 0 || (context->valid() == false)) { if (_current_shader_context != 0) { _current_shader_context->unbind(); @@ -5788,8 +5894,8 @@ void CLP(GraphicsStateGuardian):: bind_light(PointLight *light_obj, const NodePath &light, int light_id) { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_bind_point_pcollector("Draw:Set State:Light:Bind:Point"); - // PStatTimer timer(_draw_set_state_light_bind_point_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_bind_point_pcollector); + GLenum id = get_light_id(light_id); static const LColor black(0.0f, 0.0f, 0.0f, 1.0f); call_glLightfv(id, GL_AMBIENT, black); @@ -5833,7 +5939,7 @@ void CLP(GraphicsStateGuardian):: bind_light(DirectionalLight *light_obj, const NodePath &light, int light_id) { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_bind_directional_pcollector("Draw:Set State:Light:Bind:Directional"); - // PStatTimer timer(_draw_set_state_light_bind_directional_pcollector); + // PStatGPUTimer timer(this, _draw_set_state_light_bind_directional_pcollector); pair lookup = _dlights.insert(DirectionalLights::value_type(light, DirectionalLightFrameData())); DirectionalLightFrameData &fdata = (*lookup.first).second; @@ -5885,8 +5991,8 @@ void CLP(GraphicsStateGuardian):: bind_light(Spotlight *light_obj, const NodePath &light, int light_id) { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_bind_spotlight_pcollector("Draw:Set State:Light:Bind:Spotlight"); - // PStatTimer timer(_draw_set_state_light_bind_spotlight_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_bind_spotlight_pcollector); + Lens *lens = light_obj->get_lens(); nassertv(lens != (Lens *)NULL); @@ -6019,6 +6125,7 @@ gl_flush() const { GLenum CLP(GraphicsStateGuardian):: gl_get_error() const { if (_check_errors) { + PStatTimer timer(_check_error_pcollector); return glGetError(); } else { return GL_NO_ERROR; @@ -6180,12 +6287,12 @@ query_gl_version() { _gl_shadlang_ver_minor = 0; } } - } + } else if (_gl_version_major >= 2) { const char *verstr = (const char *) glGetString(GL_SHADING_LANGUAGE_VERSION); if ((verstr == NULL) || (sscanf(verstr, "%d.%d", &_gl_shadlang_ver_major, &_gl_shadlang_ver_minor) != 2)) { - GLCAT.warning() << "Invalid GL_SHADING_LANGUAGE_VERSION format.\n"; + GLCAT.warning() << "Invalid GL_SHADING_LANGUAGE_VERSION format.\n"; } } #endif @@ -6454,7 +6561,7 @@ set_draw_buffer(int rbtype) { } } #endif // OPENGLES - + // Also ensure that any global color channels are masked out. if (gl_color_mask) { glColorMask((_color_write_mask & ColorWriteAttrib::C_red) != 0, @@ -6462,7 +6569,7 @@ set_draw_buffer(int rbtype) { (_color_write_mask & ColorWriteAttrib::C_blue) != 0, (_color_write_mask & ColorWriteAttrib::C_alpha) != 0); } - + report_my_gl_errors(); } @@ -7910,8 +8017,8 @@ void CLP(GraphicsStateGuardian):: enable_lighting(bool enable) { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_enable_lighting_pcollector("Draw:Set State:Light:Enable lighting"); - // PStatTimer timer(_draw_set_state_light_enable_lighting_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_enable_lighting_pcollector); + if (enable) { glEnable(GL_LIGHTING); } else { @@ -7932,8 +8039,8 @@ void CLP(GraphicsStateGuardian):: set_ambient_light(const LColor &color) { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_ambient_pcollector("Draw:Set State:Light:Ambient"); - // PStatTimer timer(_draw_set_state_light_ambient_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_ambient_pcollector); + LColor c = color; c.set(c[0] * _light_color_scale[0], c[1] * _light_color_scale[1], @@ -7953,8 +8060,8 @@ set_ambient_light(const LColor &color) { void CLP(GraphicsStateGuardian):: enable_light(int light_id, bool enable) { // static PStatCollector _draw_set_state_light_enable_light_pcollector("Draw:Set State:Light:Enable light"); - // PStatTimer timer(_draw_set_state_light_enable_light_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_enable_light_pcollector); + if (enable) { glEnable(get_light_id(light_id)); } else { @@ -7978,8 +8085,8 @@ void CLP(GraphicsStateGuardian):: begin_bind_lights() { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_begin_bind_pcollector("Draw:Set State:Light:Begin bind"); - // PStatTimer timer(_draw_set_state_light_begin_bind_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_begin_bind_pcollector); + // We need to temporarily load a new matrix so we can define the // light in a known coordinate system. We pick the transform of the // root. (Alternatively, we could leave the current transform where @@ -8009,8 +8116,8 @@ void CLP(GraphicsStateGuardian):: end_bind_lights() { #ifndef OPENGLES_2 // static PStatCollector _draw_set_state_light_end_bind_pcollector("Draw:Set State:Light:End bind"); - // PStatTimer timer(_draw_set_state_light_end_bind_pcollector); - + // PStatGPUTimer timer(this, _draw_set_state_light_end_bind_pcollector); + glMatrixMode(GL_MODELVIEW); glPopMatrix(); #endif @@ -8142,11 +8249,11 @@ set_state_and_transform(const RenderState *target, #endif _state_pcollector.add_level(1); - PStatTimer timer1(_draw_set_state_pcollector); + PStatGPUTimer timer1(this, _draw_set_state_pcollector); if (transform != _internal_transform) { - //PStatTimer timer(_draw_set_state_transform_pcollector); - _state_pcollector.add_level(1); + //PStatGPUTimer timer(this, _draw_set_state_transform_pcollector); + _transform_state_pcollector.add_level(1); _internal_transform = transform; do_issue_transform(); } @@ -8177,9 +8284,9 @@ set_state_and_transform(const RenderState *target, int alpha_test_slot = AlphaTestAttrib::get_class_slot(); if (_target_rs->get_attrib(alpha_test_slot) != _state_rs->get_attrib(alpha_test_slot) || !_state_mask.get_bit(alpha_test_slot) || - (_target_shader->get_flag(ShaderAttrib::F_subsume_alpha_test) != + (_target_shader->get_flag(ShaderAttrib::F_subsume_alpha_test) != _state_shader->get_flag(ShaderAttrib::F_subsume_alpha_test))) { - //PStatTimer timer(_draw_set_state_alpha_test_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_alpha_test_pcollector); do_issue_alpha_test(); _state_mask.set_bit(alpha_test_slot); } @@ -8187,7 +8294,7 @@ set_state_and_transform(const RenderState *target, int antialias_slot = AntialiasAttrib::get_class_slot(); if (_target_rs->get_attrib(antialias_slot) != _state_rs->get_attrib(antialias_slot) || !_state_mask.get_bit(antialias_slot)) { - //PStatTimer timer(_draw_set_state_antialias_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_antialias_pcollector); do_issue_antialias(); _state_mask.set_bit(antialias_slot); } @@ -8195,7 +8302,7 @@ set_state_and_transform(const RenderState *target, int clip_plane_slot = ClipPlaneAttrib::get_class_slot(); if (_target_rs->get_attrib(clip_plane_slot) != _state_rs->get_attrib(clip_plane_slot) || !_state_mask.get_bit(clip_plane_slot)) { - //PStatTimer timer(_draw_set_state_clip_plane_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_clip_plane_pcollector); do_issue_clip_plane(); _state_mask.set_bit(clip_plane_slot); } @@ -8206,7 +8313,7 @@ set_state_and_transform(const RenderState *target, _target_rs->get_attrib(color_scale_slot) != _state_rs->get_attrib(color_scale_slot) || !_state_mask.get_bit(color_slot) || !_state_mask.get_bit(color_scale_slot)) { - //PStatTimer timer(_draw_set_state_color_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_color_pcollector); do_issue_color(); do_issue_color_scale(); _state_mask.set_bit(color_slot); @@ -8222,7 +8329,7 @@ set_state_and_transform(const RenderState *target, int cull_face_slot = CullFaceAttrib::get_class_slot(); if (_target_rs->get_attrib(cull_face_slot) != _state_rs->get_attrib(cull_face_slot) || !_state_mask.get_bit(cull_face_slot)) { - //PStatTimer timer(_draw_set_state_cull_face_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_cull_face_pcollector); do_issue_cull_face(); _state_mask.set_bit(cull_face_slot); } @@ -8230,7 +8337,7 @@ set_state_and_transform(const RenderState *target, int depth_offset_slot = DepthOffsetAttrib::get_class_slot(); if (_target_rs->get_attrib(depth_offset_slot) != _state_rs->get_attrib(depth_offset_slot) || !_state_mask.get_bit(depth_offset_slot)) { - //PStatTimer timer(_draw_set_state_depth_offset_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_depth_offset_pcollector); do_issue_depth_offset(); _state_mask.set_bit(depth_offset_slot); } @@ -8238,7 +8345,7 @@ set_state_and_transform(const RenderState *target, int depth_test_slot = DepthTestAttrib::get_class_slot(); if (_target_rs->get_attrib(depth_test_slot) != _state_rs->get_attrib(depth_test_slot) || !_state_mask.get_bit(depth_test_slot)) { - //PStatTimer timer(_draw_set_state_depth_test_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_depth_test_pcollector); do_issue_depth_test(); _state_mask.set_bit(depth_test_slot); } @@ -8246,7 +8353,7 @@ set_state_and_transform(const RenderState *target, int depth_write_slot = DepthWriteAttrib::get_class_slot(); if (_target_rs->get_attrib(depth_write_slot) != _state_rs->get_attrib(depth_write_slot) || !_state_mask.get_bit(depth_write_slot)) { - //PStatTimer timer(_draw_set_state_depth_write_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_depth_write_pcollector); do_issue_depth_write(); _state_mask.set_bit(depth_write_slot); } @@ -8254,7 +8361,7 @@ set_state_and_transform(const RenderState *target, int render_mode_slot = RenderModeAttrib::get_class_slot(); if (_target_rs->get_attrib(render_mode_slot) != _state_rs->get_attrib(render_mode_slot) || !_state_mask.get_bit(render_mode_slot)) { - //PStatTimer timer(_draw_set_state_render_mode_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_render_mode_pcollector); do_issue_render_mode(); _state_mask.set_bit(render_mode_slot); } @@ -8262,7 +8369,7 @@ set_state_and_transform(const RenderState *target, int rescale_normal_slot = RescaleNormalAttrib::get_class_slot(); if (_target_rs->get_attrib(rescale_normal_slot) != _state_rs->get_attrib(rescale_normal_slot) || !_state_mask.get_bit(rescale_normal_slot)) { - //PStatTimer timer(_draw_set_state_rescale_normal_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_rescale_normal_pcollector); do_issue_rescale_normal(); _state_mask.set_bit(rescale_normal_slot); } @@ -8270,7 +8377,7 @@ set_state_and_transform(const RenderState *target, int shade_model_slot = ShadeModelAttrib::get_class_slot(); if (_target_rs->get_attrib(shade_model_slot) != _state_rs->get_attrib(shade_model_slot) || !_state_mask.get_bit(shade_model_slot)) { - //PStatTimer timer(_draw_set_state_shade_model_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_shade_model_pcollector); do_issue_shade_model(); _state_mask.set_bit(shade_model_slot); } @@ -8284,9 +8391,9 @@ set_state_and_transform(const RenderState *target, !_state_mask.get_bit(transparency_slot) || !_state_mask.get_bit(color_write_slot) || !_state_mask.get_bit(color_blend_slot) || - (_target_shader->get_flag(ShaderAttrib::F_disable_alpha_write) != + (_target_shader->get_flag(ShaderAttrib::F_disable_alpha_write) != _state_shader->get_flag(ShaderAttrib::F_disable_alpha_write))) { - //PStatTimer timer(_draw_set_state_blending_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_blending_pcollector); do_issue_blending(); _state_mask.set_bit(transparency_slot); _state_mask.set_bit(color_write_slot); @@ -8294,7 +8401,7 @@ set_state_and_transform(const RenderState *target, } if (_target_shader != _state_shader) { - //PStatTimer timer(_draw_set_state_shader_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_shader_pcollector); #ifndef OPENGLES_1 do_issue_shader(true); #endif @@ -8310,7 +8417,7 @@ set_state_and_transform(const RenderState *target, int texture_slot = TextureAttrib::get_class_slot(); if (_target_rs->get_attrib(texture_slot) != _state_rs->get_attrib(texture_slot) || !_state_mask.get_bit(texture_slot)) { - //PStatTimer timer(_draw_set_state_texture_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_texture_pcollector); determine_target_texture(); int prev_active = _num_active_texture_stages; do_issue_texture(); @@ -8324,7 +8431,7 @@ set_state_and_transform(const RenderState *target, _state_texture = _target_texture; _state_mask.set_bit(texture_slot); } - + // If one of the previously-loaded TexGen modes modified the texture // matrix, then if either state changed, we have to change both of // them now. @@ -8343,7 +8450,7 @@ set_state_and_transform(const RenderState *target, int tex_matrix_slot = TexMatrixAttrib::get_class_slot(); if (_target_rs->get_attrib(tex_matrix_slot) != _state_rs->get_attrib(tex_matrix_slot) || !_state_mask.get_bit(tex_matrix_slot)) { - //PStatTimer timer(_draw_set_state_tex_matrix_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_tex_matrix_pcollector); do_issue_tex_matrix(); _state_mask.set_bit(tex_matrix_slot); } @@ -8351,7 +8458,7 @@ set_state_and_transform(const RenderState *target, int tex_gen_slot = TexGenAttrib::get_class_slot(); if (_target_tex_gen != _state_tex_gen || !_state_mask.get_bit(tex_gen_slot)) { - //PStatTimer timer(_draw_set_state_tex_gen_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_tex_gen_pcollector); do_issue_tex_gen(); _state_tex_gen = _target_tex_gen; _state_mask.set_bit(tex_gen_slot); @@ -8360,7 +8467,7 @@ set_state_and_transform(const RenderState *target, int material_slot = MaterialAttrib::get_class_slot(); if (_target_rs->get_attrib(material_slot) != _state_rs->get_attrib(material_slot) || !_state_mask.get_bit(material_slot)) { - //PStatTimer timer(_draw_set_state_material_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_material_pcollector); do_issue_material(); _state_mask.set_bit(material_slot); #ifndef OPENGLES_1 @@ -8373,7 +8480,7 @@ set_state_and_transform(const RenderState *target, int light_slot = LightAttrib::get_class_slot(); if (_target_rs->get_attrib(light_slot) != _state_rs->get_attrib(light_slot) || !_state_mask.get_bit(light_slot)) { - //PStatTimer timer(_draw_set_state_light_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_light_pcollector); do_issue_light(); _state_mask.set_bit(light_slot); } @@ -8381,7 +8488,7 @@ set_state_and_transform(const RenderState *target, int stencil_slot = StencilAttrib::get_class_slot(); if (_target_rs->get_attrib(stencil_slot) != _state_rs->get_attrib(stencil_slot) || !_state_mask.get_bit(stencil_slot)) { - //PStatTimer timer(_draw_set_state_stencil_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_stencil_pcollector); do_issue_stencil(); _state_mask.set_bit(stencil_slot); } @@ -8389,7 +8496,7 @@ set_state_and_transform(const RenderState *target, int fog_slot = FogAttrib::get_class_slot(); if (_target_rs->get_attrib(fog_slot) != _state_rs->get_attrib(fog_slot) || !_state_mask.get_bit(fog_slot)) { - //PStatTimer timer(_draw_set_state_fog_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_fog_pcollector); do_issue_fog(); _state_mask.set_bit(fog_slot); #ifndef OPENGLES_1 @@ -8402,7 +8509,7 @@ set_state_and_transform(const RenderState *target, int scissor_slot = ScissorAttrib::get_class_slot(); if (_target_rs->get_attrib(scissor_slot) != _state_rs->get_attrib(scissor_slot) || !_state_mask.get_bit(scissor_slot)) { - //PStatTimer timer(_draw_set_state_scissor_pcollector); + //PStatGPUTimer timer(this, _draw_set_state_scissor_pcollector); do_issue_scissor(); _state_mask.set_bit(scissor_slot); } @@ -8547,7 +8654,7 @@ update_standard_texture_bindings() { show_stage_index = i; } } - + if (show_stage_index >= 0) { update_show_usage_texture_bindings(show_stage_index); return; @@ -8594,7 +8701,7 @@ update_standard_texture_bindings() { // Something wrong with this texture; skip it. continue; } - + #ifndef OPENGLES_2 // Then, turn on the current texture mode. GLenum target = get_texture_target(texture->get_texture_type()); @@ -8610,7 +8717,7 @@ update_standard_texture_bindings() { #endif glEnable(target); #endif - + if (!update_texture(tc, false)) { #ifndef OPENGLES_2 glDisable(target); @@ -8618,7 +8725,7 @@ update_standard_texture_bindings() { continue; } apply_texture(tc); - + if (stage->involves_color_scale() && _color_scale_enabled) { LColor color = stage->get_color(); color.set(color[0] * _current_color_scale[0], @@ -8630,7 +8737,7 @@ update_standard_texture_bindings() { } else { call_glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, stage->get_color()); } - + if (stage->get_mode() == TextureStage::M_decal) { if (texture->get_num_components() < 3 && _supports_texture_combine) { // Make a special case for 1- and 2-channel decal textures. @@ -8646,12 +8753,12 @@ update_standard_texture_bindings() { glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_SRC2_RGB, GL_TEXTURE); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA); - + } else { // Normal 3- and 4-channel decal textures. glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); } - + } else if (stage->get_mode() == TextureStage::M_combine) { if (!_supports_texture_combine) { GLCAT.warning() @@ -8664,7 +8771,7 @@ update_standard_texture_bindings() { glTexEnvi(GL_TEXTURE_ENV, GL_ALPHA_SCALE, stage->get_alpha_scale()); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, get_texture_combine_type(stage->get_combine_rgb_mode())); - + switch (stage->get_num_combine_rgb_operands()) { case 3: glTexEnvi(GL_TEXTURE_ENV, GL_SRC2_RGB, @@ -8673,7 +8780,7 @@ update_standard_texture_bindings() { glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, get_texture_operand_type(stage->get_combine_rgb_operand2())); // fall through - + case 2: glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, get_texture_src_type(stage->get_combine_rgb_source1(), @@ -8681,7 +8788,7 @@ update_standard_texture_bindings() { glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, get_texture_operand_type(stage->get_combine_rgb_operand1())); // fall through - + case 1: glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, get_texture_src_type(stage->get_combine_rgb_source0(), @@ -8689,13 +8796,13 @@ update_standard_texture_bindings() { glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, get_texture_operand_type(stage->get_combine_rgb_operand0())); // fall through - + default: break; } glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, get_texture_combine_type(stage->get_combine_alpha_mode())); - + switch (stage->get_num_combine_alpha_operands()) { case 3: glTexEnvi(GL_TEXTURE_ENV, GL_SRC2_ALPHA, @@ -8740,7 +8847,7 @@ update_standard_texture_bindings() { last_stage = i; } } - + #ifndef OPENGLES_2 // Disable the texture stages that are no longer used. for (i = num_stages; i < _num_active_texture_stages; i++) { @@ -8759,10 +8866,10 @@ update_standard_texture_bindings() { } } #endif // OPENGLES_2 - + // Save the count of texture stages for next time. _num_active_texture_stages = num_stages; - + report_my_gl_errors(); #endif } @@ -8827,7 +8934,7 @@ update_show_usage_texture_bindings(int show_stage_index) { } } #endif - + // Save the count of texture stages for next time. _num_active_texture_stages = num_stages; @@ -8911,7 +9018,7 @@ upload_usage_texture(int width, int height) { // A simple union to store the colors values bytewise, and get the // answer wordwise, independently of machine byte-ordernig. union { - struct { + struct { unsigned char r, g, b, a; } b; PN_uint32 w; @@ -8927,7 +9034,7 @@ upload_usage_texture(int width, int height) { for (int p = 0; p < num_pixels; ++p) { buffer[p] = store.w; } - + glTexImage2D(GL_TEXTURE_2D, n, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer); if (width == 1 && height == 1) { @@ -8968,9 +9075,9 @@ disable_standard_texture_bindings() { glDisable(GL_TEXTURE_CUBE_MAP); } } - + _num_active_texture_stages = 0; - + report_my_gl_errors(); #endif // OPENGLES_2 } @@ -9446,6 +9553,8 @@ apply_texture(TextureContext *tc) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: upload_texture(CLP(TextureContext) *gtc, bool force) { + PStatGPUTimer timer(this, _load_texture_pcollector); + Texture *tex = gtc->get_texture(); if (_effective_incomplete_render && !force) { @@ -9557,7 +9666,7 @@ upload_texture(CLP(TextureContext) *gtc, bool force) { // reduce the texture at load time instead; of course, the user // doesn't always know ahead of time what the hardware limits are. - if ((max_dimension_x > 0 && max_dimension_y > 0 && max_dimension_z > 0) && + if ((max_dimension_x > 0 && max_dimension_y > 0 && max_dimension_z > 0) && image_compression == Texture::CM_off) { while (tex->get_expected_mipmap_x_size(mipmap_bias) > max_dimension_x || tex->get_expected_mipmap_y_size(mipmap_bias) > max_dimension_y || @@ -9633,12 +9742,18 @@ upload_texture(CLP(TextureContext) *gtc, bool force) { } if (needs_reload) { + if (_use_object_labels) { + // This seems like a good time to assign a label for the debug messages. + const string &name = tex->get_name(); + _glObjectLabel(GL_TEXTURE, gtc->_index, name.size(), name.data()); + } + + // Figure out whether mipmaps will be generated by the GPU or by + // Panda (or not at all), and how many mipmap levels should be created. gtc->_generate_mipmaps = false; int num_levels = 1; CPTA_uchar image = tex->get_ram_mipmap_image(mipmap_bias); - // Figure out whether mipmaps will be generated by the GPU or by - // Panda (or not at all), and how many mipmap levels should be created. if (image.is_null()) { if (uses_mipmaps) { if (_supports_generate_mipmap) { @@ -9657,7 +9772,7 @@ upload_texture(CLP(TextureContext) *gtc, bool force) { if (num_levels <= 1) { // No RAM mipmap levels available. Should we generate some? - if (!_supports_generate_mipmap || !driver_generate_mipmaps || + if (!_supports_generate_mipmap || !driver_generate_mipmaps || image_compression != Texture::CM_off) { // Yes, the GL can't or won't generate them, so we need to. // Note that some drivers (nVidia) will *corrupt memory* if @@ -9739,7 +9854,7 @@ upload_texture(CLP(TextureContext) *gtc, bool force) { if (!image.is_null() && uses_mipmaps) { if (tex->get_num_ram_mipmap_images() - mipmap_bias <= 1) { // No RAM mipmap levels available. Should we generate some? - if (!_supports_generate_mipmap || !driver_generate_mipmaps || + if (!_supports_generate_mipmap || !driver_generate_mipmaps || image_compression != Texture::CM_off) { // Yes, the GL can't or won't generate them, so we need to. // Note that some drivers (nVidia) will *corrupt memory* if @@ -9894,7 +10009,6 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, return false; } - PStatTimer timer(_load_texture_pcollector); Texture *tex = gtc->get_texture(); nassertr(tex != (Texture *)NULL, false); @@ -10251,7 +10365,7 @@ bool CLP(GraphicsStateGuardian):: upload_simple_texture(CLP(TextureContext) *gtc) { report_my_gl_errors(); - PStatTimer timer(_load_texture_pcollector); + PStatGPUTimer timer(this, _load_texture_pcollector); Texture *tex = gtc->get_texture(); nassertr(tex != (Texture *)NULL, false); @@ -10664,7 +10778,7 @@ do_extract_texture_data(CLP(TextureContext) *gtc) { case GL_R32F: type = Texture::T_float; format = Texture::F_r32; - break; + break; #endif #ifndef OPENGLES @@ -11097,7 +11211,7 @@ get_supports_cg_profile(const string &name) const { CGprofile profile = cgGetProfile(name.c_str()); if (profile == CG_PROFILE_UNKNOWN) { - GLCAT.error() << name <<", unknown Cg-profile\n"; + GLCAT.error() << name << ", unknown Cg-profile\n"; return false; } return (cgGLIsProfileSupported(profile) != 0); @@ -11111,6 +11225,12 @@ get_supports_cg_profile(const string &name) const { //////////////////////////////////////////////////////////////////// void CLP(GraphicsStateGuardian):: bind_fbo(GLuint fbo) { + if (_current_fbo == fbo) { + return; + } + + PStatGPUTimer timer(this, _fbo_bind_pcollector); + nassertv(_glBindFramebuffer != 0); #if defined(OPENGLES_2) _glBindFramebuffer(GL_FRAMEBUFFER, fbo); @@ -11119,6 +11239,7 @@ bind_fbo(GLuint fbo) { #else _glBindFramebuffer(GL_FRAMEBUFFER_EXT, fbo); #endif + _current_fbo = fbo; } @@ -11149,7 +11270,7 @@ static int gl_stencil_operations_array [ ] = { GL_DECR_WRAP, #endif GL_INVERT, - + GL_INCR, GL_DECR, }; diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.h b/panda/src/glstuff/glGraphicsStateGuardian_src.h index e7cfa3001c..b47c22ce48 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.h +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.h @@ -1,6 +1,6 @@ // Filename: glGraphicsStateGuardian_src.h // Created by: drose (02Feb99) -// Updated by: fperazzi, PandaSE (05May10) (added +// Updated by: fperazzi, PandaSE (05May10) (added // get_supports_cg_profile) // //////////////////////////////////////////////////////////////////// @@ -37,6 +37,7 @@ #include "pmap.h" #include "geomVertexArrayData.h" #include "lightMutex.h" +#include "pStatGPUTimer.h" class PlaneNode; class Light; @@ -58,6 +59,7 @@ typedef double GLdouble; typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); @@ -65,6 +67,8 @@ typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); // There is some trivial disagreement between different gl.h headers about this one, so we use our own typename. @@ -98,32 +102,32 @@ typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); +typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); #ifdef OPENGLES_2 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); #else -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); #endif typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); @@ -189,7 +193,7 @@ typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEPROC) (GLuint texture); typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEPROC) (GLuint texture, GLuint sampler); typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTPROC) (GLuint64 handle); @@ -228,7 +232,7 @@ public: virtual int get_driver_version_minor(); virtual int get_driver_shader_version_major(); virtual int get_driver_shader_version_minor(); - + #ifndef OPENGLES_1 static void debug_callback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam); #endif @@ -302,13 +306,15 @@ public: virtual void begin_occlusion_query(); virtual PT(OcclusionQueryContext) end_occlusion_query(); + virtual PT(TimerQueryContext) issue_timer_query(int pstats_index); + virtual void dispatch_compute(int size_x, int size_y, int size_z); virtual PT(GeomMunger) make_geom_munger(const RenderState *state, Thread *current_thread); virtual void clear(DrawableRegion *region); - + virtual bool framebuffer_copy_to_texture (Texture *tex, int view, int z, const DisplayRegion *dr, const RenderBuffer &rb); virtual bool framebuffer_copy_to_ram @@ -332,9 +338,9 @@ public: void draw_immediate_composite_primitives(const GeomPrimitivePipelineReader *reader, GLenum mode); #endif // SUPPORT_IMMEDIATE_MODE - INLINE static bool report_errors(int line, const char *source_file); + INLINE bool report_errors(int line, const char *source_file); INLINE void report_my_errors(int line, const char *source_file); - INLINE static bool clear_errors(int line, const char *source_file); + INLINE bool clear_errors(int line, const char *source_file); INLINE void clear_my_errors(int line, const char *source_file); INLINE const string &get_gl_vendor() const; @@ -475,8 +481,8 @@ protected: bool upload_texture(CLP(TextureContext) *gtc, bool force); bool upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, bool uses_mipmaps, int mipmap_bias, - GLenum texture_target, GLenum page_target, - GLint internal_format, GLint external_format, + GLenum texture_target, GLenum page_target, + GLint internal_format, GLint external_format, GLenum component_type, bool one_page_only, int z, Texture::CompressionMode image_compression); @@ -590,7 +596,6 @@ protected: public: bool _supports_point_parameters; PFNGLPOINTPARAMETERFVPROC _glPointParameterfv; - bool _supports_point_sprite; bool _supports_vertex_blend; @@ -703,6 +708,12 @@ public: PFNGLGETQUERYIVPROC _glGetQueryiv; PFNGLGETQUERYOBJECTUIVPROC _glGetQueryObjectuiv; + PFNGLQUERYCOUNTERPROC _glQueryCounter; + PFNGLGETQUERYOBJECTI64VPROC _glGetQueryObjecti64v; + PFNGLGETQUERYOBJECTUI64VPROC _glGetQueryObjectui64v; + + PFNGLGETINTEGER64VPROC _glGetInteger64v; + PFNGLACTIVESTENCILFACEEXTPROC _glActiveStencilFaceEXT; #ifndef OPENGLES_1 @@ -778,9 +789,9 @@ public: #endif LightMutex _lock; - typedef pvector DeletedDisplayLists; - DeletedDisplayLists _deleted_display_lists; - DeletedDisplayLists _deleted_queries; + typedef pvector DeletedNames; + DeletedNames _deleted_display_lists; + DeletedNames _deleted_queries; #ifndef OPENGLES // Stores textures for which memory bariers should be issued. @@ -797,6 +808,9 @@ public: bool _force_flush; bool _supports_debug; + bool _use_object_labels; + PFNGLOBJECTLABELPROC _glObjectLabel; + #ifndef NDEBUG bool _show_texture_usage; int _show_texture_usage_max_size; @@ -818,7 +832,11 @@ public: static PStatCollector _primitive_batches_display_list_pcollector; static PStatCollector _vertices_display_list_pcollector; static PStatCollector _vertices_immediate_pcollector; - static PStatCollector _compute_dispatch_pcollector; + static PStatCollector _memory_barrier_pcollector; + static PStatCollector _vertex_array_update_pcollector; + static PStatCollector _texture_update_pcollector; + static PStatCollector _fbo_bind_pcollector; + static PStatCollector _check_error_pcollector; public: virtual TypeHandle get_type() const { @@ -846,6 +864,7 @@ private: friend class CLP(CgShaderContext); friend class CLP(GraphicsBuffer); friend class CLP(OcclusionQueryContext); + friend class CLP(TimerQueryContext); }; #include "glGraphicsStateGuardian_src.I" diff --git a/panda/src/glstuff/glLatencyQueryContext_src.I b/panda/src/glstuff/glLatencyQueryContext_src.I new file mode 100644 index 0000000000..d87b0c6263 --- /dev/null +++ b/panda/src/glstuff/glLatencyQueryContext_src.I @@ -0,0 +1,14 @@ +// Filename: glLatencyQueryContext_src.I +// Created by: rdb (24Sep14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + diff --git a/panda/src/glstuff/glLatencyQueryContext_src.cxx b/panda/src/glstuff/glLatencyQueryContext_src.cxx new file mode 100644 index 0000000000..b99217f282 --- /dev/null +++ b/panda/src/glstuff/glLatencyQueryContext_src.cxx @@ -0,0 +1,54 @@ +// Filename: glLatencyQueryContext_src.cxx +// Created by: rdb (24Sep14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#ifndef OPENGLES // Timer queries not supported by OpenGL ES. + +TypeHandle CLP(LatencyQueryContext)::_type_handle; + +//////////////////////////////////////////////////////////////////// +// Function: CLP(LatencyQueryContext)::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CLP(LatencyQueryContext):: +CLP(LatencyQueryContext)(CLP(GraphicsStateGuardian) *glgsg, + int pstats_index) : + CLP(TimerQueryContext)(glgsg, pstats_index), + _timestamp(0) +{ + glgsg->_glGetInteger64v(GL_TIMESTAMP, &_timestamp); +} + +//////////////////////////////////////////////////////////////////// +// Function: LatencyQueryContext::get_timestamp +// Access: Public, Virtual +// Description: Returns the timestamp that is the result of this +// timer query. There's no guarantee about which +// clock this uses, the only guarantee is that +// subtracting a start time from an end time should +// yield a time in seconds. +// If is_answer_ready() did not return true, this +// function may block before it returns. +// +// It is only valid to call this from the draw thread. +//////////////////////////////////////////////////////////////////// +double CLP(LatencyQueryContext):: +get_timestamp() const { + GLint64 time_ns; + _glgsg->_glGetQueryObjecti64v(_index, GL_QUERY_RESULT, &time_ns); + + return (time_ns - _timestamp) * 0.000000001; +} + +#endif // OPENGLES diff --git a/panda/src/glstuff/glLatencyQueryContext_src.h b/panda/src/glstuff/glLatencyQueryContext_src.h new file mode 100644 index 0000000000..e2c5eae4e3 --- /dev/null +++ b/panda/src/glstuff/glLatencyQueryContext_src.h @@ -0,0 +1,57 @@ +// Filename: glLatencyQueryContext_src.h +// Created by: rdb (24Sep14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +class GraphicsStateGuardian; + +#ifndef OPENGLES // Timer queries not supported by OpenGL ES. + +//////////////////////////////////////////////////////////////////// +// Class : GLLatencyQueryContext +// Description : This is a special variant of GLTimerQueryContext +// that measures the command latency, ie. the time +// it takes for the GPU to actually get to the commands +// we are issuing right now. +//////////////////////////////////////////////////////////////////// +class EXPCL_GL CLP(LatencyQueryContext) : public CLP(TimerQueryContext) { +public: + CLP(LatencyQueryContext)(CLP(GraphicsStateGuardian) *glgsg, int pstats_index); + + ALLOC_DELETED_CHAIN(CLP(LatencyQueryContext)); + + virtual double get_timestamp() const; + + GLint64 _timestamp; + +public: + static TypeHandle get_class_type() { + return _type_handle; + } + static void init_type() { + CLP(TimerQueryContext)::init_type(); + register_type(_type_handle, CLASSPREFIX_QUOTED "LatencyQueryContext", + CLP(TimerQueryContext)::get_class_type()); + } + virtual TypeHandle get_type() const { + return get_class_type(); + } + virtual TypeHandle force_init_type() {init_type(); return get_class_type();} + +private: + static TypeHandle _type_handle; +}; + +#include "glLatencyQueryContext_src.I" + +#endif // OPENGLES + diff --git a/panda/src/glstuff/glShaderContext_src.cxx b/panda/src/glstuff/glShaderContext_src.cxx index f8dadb991f..d13da80863 100755 --- a/panda/src/glstuff/glShaderContext_src.cxx +++ b/panda/src/glstuff/glShaderContext_src.cxx @@ -16,7 +16,7 @@ #ifndef OPENGLES_1 -#include "pStatTimer.h" +#include "pStatGPUTimer.h" TypeHandle CLP(ShaderContext)::_type_handle; @@ -35,19 +35,19 @@ TypeHandle CLP(ShaderContext)::_type_handle; // Access: Public // Description: The Panda CG shader syntax defines a useful set of shorthand notations for setting nodepath // properties as shaderinputs. For example, float4 mspos_XXX refers to nodepath XXX's position -// in model space. This function is a rough attempt to reimplement some of the shorthand +// in model space. This function is a rough attempt to reimplement some of the shorthand // notations for GLSL. The code is ~99% composed of excerpts dealing with matrix shaderinputs -// from Shader::compile_parameter. -// -// Given a uniform variable name queried from the compiled shader passed in via arg_id, +// from Shader::compile_parameter. +// +// Given a uniform variable name queried from the compiled shader passed in via arg_id, // 1) parse the name // 2a) if the name refers to a Panda shorthand notation // push the appropriate matrix into shader._mat_spec // returns True // 2b) If the name doesn't refer to a Panda shorthand notation // returns False -// -// The boolean return is used to notify down-river processing whether the shader var/parm was +// +// The boolean return is used to notify down-river processing whether the shader var/parm was // actually picked up and the appropriate ShaderMatSpec pushed onto _mat_spec. //////////////////////////////////////////////////////////////////// bool CLP(ShaderContext):: @@ -700,7 +700,7 @@ CLP(ShaderContext)(CLP(GraphicsStateGuardian) *glgsg, Shader *s) : ShaderContext } } } - + // Now we've processed the uniforms, we'll process the attribs. _glgsg->_glGetProgramiv(_glsl_program, GL_ACTIVE_ATTRIBUTES, ¶m_count); _glgsg->_glGetProgramiv(_glsl_program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, ¶m_maxlength); @@ -836,7 +836,7 @@ release_resources() { } _glsl_shaders.clear(); - + _glgsg->report_my_gl_errors(); } @@ -890,7 +890,7 @@ unbind() { //////////////////////////////////////////////////////////////////// void CLP(ShaderContext):: issue_parameters(int altered) { - PStatTimer timer(_glgsg->_draw_set_state_shader_parameters_pcollector); + //PStatGPUTimer timer(_glgsg, _glgsg->_draw_set_state_shader_parameters_pcollector); if (!valid()) { return; @@ -1374,12 +1374,11 @@ glsl_report_shader_errors(GLuint shader) { _glgsg->_glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); if (length > 1) { - info_log = (char *) malloc(length); + info_log = (char *) alloca(length); _glgsg->_glGetShaderInfoLog(shader, length, &num_chars, info_log); if (strcmp(info_log, "Success.\n") != 0 && strcmp(info_log, "No errors.\n") != 0) { GLCAT.error(false) << info_log << "\n"; } - free(info_log); } } @@ -1397,19 +1396,18 @@ glsl_report_program_errors(GLuint program) { _glgsg->_glGetProgramiv(program, GL_INFO_LOG_LENGTH, &length); if (length > 1) { - info_log = (char *) malloc(length); + info_log = (char *) alloca(length); _glgsg->_glGetProgramInfoLog(program, length, &num_chars, info_log); if (strcmp(info_log, "Success.\n") != 0 && strcmp(info_log, "No errors.\n") != 0) { GLCAT.error(false) << info_log << "\n"; } - free(info_log); } } //////////////////////////////////////////////////////////////////// // Function: Shader::glsl_compile_shader // Access: Private -// Description: +// Description: //////////////////////////////////////////////////////////////////// bool CLP(ShaderContext):: glsl_compile_shader(Shader::ShaderType type) { @@ -1451,16 +1449,21 @@ glsl_compile_shader(Shader::ShaderType type) { return false; } + if (_glgsg->_use_object_labels) { + string name = _shader->get_filename(type); + _glgsg->_glObjectLabel(GL_SHADER, handle, name.size(), name.data()); + } + string text_str = _shader->get_text(type); const char* text = text_str.c_str(); _glgsg->_glShaderSource(handle, 1, &text, NULL); _glgsg->_glCompileShader(handle); GLint status; _glgsg->_glGetShaderiv(handle, GL_COMPILE_STATUS, &status); - + if (status != GL_TRUE) { - GLCAT.error() - << "An error occurred while compiling shader " + GLCAT.error() + << "An error occurred while compiling shader " << _shader->get_filename(type) << "\n"; glsl_report_shader_errors(handle); _glgsg->_glDeleteShader(handle); @@ -1485,6 +1488,12 @@ glsl_compile_and_link() { if (!_glsl_program) { return false; } + + if (_glgsg->_use_object_labels) { + string name = _shader->get_filename(); + _glgsg->_glObjectLabel(GL_PROGRAM, _glsl_program, name.size(), name.data()); + } + bool valid = true; if (!_shader->get_text(Shader::ST_vertex).empty()) { @@ -1507,7 +1516,7 @@ glsl_compile_and_link() { nassertr(_glgsg->_glProgramParameteri != NULL, false); GLint max_vertices; glGetIntegerv(GL_MAX_GEOMETRY_OUTPUT_VERTICES, &max_vertices); - _glgsg->_glProgramParameteri(_glsl_program, GL_GEOMETRY_VERTICES_OUT_ARB, max_vertices); + _glgsg->_glProgramParameteri(_glsl_program, GL_GEOMETRY_VERTICES_OUT_ARB, max_vertices); } #endif diff --git a/panda/src/glstuff/glTimerQueryContext_src.I b/panda/src/glstuff/glTimerQueryContext_src.I new file mode 100644 index 0000000000..594cf90eea --- /dev/null +++ b/panda/src/glstuff/glTimerQueryContext_src.I @@ -0,0 +1,28 @@ +// Filename: glTimerQueryContext_src.I +// Created by: rdb (22Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////////// +// Function: CLP(TimerQueryContext)::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE CLP(TimerQueryContext):: +CLP(TimerQueryContext)(CLP(GraphicsStateGuardian) *glgsg, + int pstats_index) : + TimerQueryContext(pstats_index), + _glgsg(glgsg), + _index(0) +{ +} diff --git a/panda/src/glstuff/glTimerQueryContext_src.cxx b/panda/src/glstuff/glTimerQueryContext_src.cxx new file mode 100644 index 0000000000..59c5f874a8 --- /dev/null +++ b/panda/src/glstuff/glTimerQueryContext_src.cxx @@ -0,0 +1,104 @@ +// Filename: glTimerQueryContext_src.cxx +// Created by: rdb (22Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#include "pnotify.h" +#include "dcast.h" +#include "lightMutexHolder.h" +#include "pStatTimer.h" + +#ifndef OPENGLES // Timer queries not supported by OpenGL ES. + +TypeHandle CLP(TimerQueryContext)::_type_handle; + +//////////////////////////////////////////////////////////////////// +// Function: GLTimerQueryContext::Destructor +// Access: Public, Virtual +// Description: +//////////////////////////////////////////////////////////////////// +CLP(TimerQueryContext):: +~CLP(TimerQueryContext)() { + if (_index != 0) { + // Tell the GSG to recycle this index when it gets around to it. + LightMutexHolder holder(_glgsg->_lock); + _glgsg->_deleted_queries.push_back(_index); + _index = 0; + } +} + +//////////////////////////////////////////////////////////////////// +// Function: GLTimerQueryContext::is_answer_ready +// Access: Public, Virtual +// Description: Returns true if the query's answer is ready, false +// otherwise. If this returns false, the application +// must continue to poll until it returns true. +// +// It is only valid to call this from the draw thread. +//////////////////////////////////////////////////////////////////// +bool CLP(TimerQueryContext):: +is_answer_ready() const { + GLuint result; + _glgsg->_glGetQueryObjectuiv(_index, GL_QUERY_RESULT_AVAILABLE, &result); + + return (result != 0); +} + +//////////////////////////////////////////////////////////////////// +// Function: GLTimerQueryContext::waiting_for_answer +// Access: Public, Virtual +// Description: Requests the graphics engine to expedite the pending +// answer--the application is now waiting until the +// answer is ready. +// +// It is only valid to call this from the draw thread. +//////////////////////////////////////////////////////////////////// +void CLP(TimerQueryContext):: +waiting_for_answer() { + PStatTimer timer(GraphicsStateGuardian::_wait_timer_pcollector); + glFlush(); +} + +//////////////////////////////////////////////////////////////////// +// Function: TimerQueryContext::get_timestamp +// Access: Public, Virtual +// Description: Returns the timestamp that is the result of this +// timer query. There's no guarantee about which +// clock this uses, the only guarantee is that +// subtracting a start time from an end time should +// yield a time in seconds. +// If is_answer_ready() did not return true, this +// function may block before it returns. +// +// It is only valid to call this from the draw thread. +//////////////////////////////////////////////////////////////////// +double CLP(TimerQueryContext):: +get_timestamp() const { + GLuint64 time_ns; + + /*GLuint available; + _glgsg->_glGetQueryObjectuiv(_index[1], GL_QUERY_RESULT_AVAILABLE, &available); + if (available) { + // The answer is ready now. + do_get_timestamps(begin_ns, end_ns); + } else { + // The answer is not ready; this call will block. + PStatTimer timer(GraphicsStateGuardian::_wait_timer_pcollector); + do_get_timestamps(begin_ns, end_ns); + }*/ + + _glgsg->_glGetQueryObjectui64v(_index, GL_QUERY_RESULT, &time_ns); + + return time_ns * 0.000000001; +} + +#endif // OPENGLES diff --git a/panda/src/glstuff/glTimerQueryContext_src.h b/panda/src/glstuff/glTimerQueryContext_src.h new file mode 100644 index 0000000000..ce4248ffd1 --- /dev/null +++ b/panda/src/glstuff/glTimerQueryContext_src.h @@ -0,0 +1,68 @@ +// Filename: glTimerQueryContext_src.h +// Created by: rdb (22Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#include "pandabase.h" +#include "timerQueryContext.h" +#include "deletedChain.h" +#include "clockObject.h" + +class GraphicsStateGuardian; + +#ifndef OPENGLES // Timer queries not supported by OpenGL ES. + +//////////////////////////////////////////////////////////////////// +// Class : GLTimerQueryContext +// Description : This class manages a timer query that can be used +// by a PStatGPUTimer to measure the time a task takes +// to execute on the GPU. +// This records the current timestamp; a pair of these +// is usually used to get the elapsed time. +//////////////////////////////////////////////////////////////////// +class EXPCL_GL CLP(TimerQueryContext) : public TimerQueryContext { +public: + INLINE CLP(TimerQueryContext)(CLP(GraphicsStateGuardian) *glgsg, + int pstats_index); + virtual ~CLP(TimerQueryContext)(); + + ALLOC_DELETED_CHAIN(CLP(TimerQueryContext)); + + virtual bool is_answer_ready() const; + virtual void waiting_for_answer(); + virtual double get_timestamp() const; + + GLuint _index; + CLP(GraphicsStateGuardian) *_glgsg; + +public: + static TypeHandle get_class_type() { + return _type_handle; + } + static void init_type() { + TimerQueryContext::init_type(); + register_type(_type_handle, CLASSPREFIX_QUOTED "TimerQueryContext", + TimerQueryContext::get_class_type()); + } + virtual TypeHandle get_type() const { + return get_class_type(); + } + virtual TypeHandle force_init_type() {init_type(); return get_class_type();} + +private: + static TypeHandle _type_handle; +}; + +#include "glTimerQueryContext_src.I" + +#endif // OPENGLES + diff --git a/panda/src/glstuff/glmisc_src.cxx b/panda/src/glstuff/glmisc_src.cxx index d01deb3da7..3c1d8a2b86 100644 --- a/panda/src/glstuff/glmisc_src.cxx +++ b/panda/src/glstuff/glmisc_src.cxx @@ -151,6 +151,13 @@ ConfigVariableEnum gl_debug_abort_level "that triggered the error message. " "This feature is not available when NDEBUG has been defined.")); +ConfigVariableBool gl_debug_object_labels + ("gl-debug-object-labels", true, + PRC_DESC("When gl-debug is set to true, this will tell OpenGL the " + "name of textures, shaders, and other objects, so that OpenGL " + "can display those in error messages. There's usually no " + "reason to disable this.")); + ConfigVariableBool gl_debug_buffers ("gl-debug-buffers", false, PRC_DESC("Set this true, in addition to enabling debug notify for " @@ -162,7 +169,8 @@ ConfigVariableBool gl_finish PRC_DESC("Set this true to force a call to glFinish() after every major " "graphics operation. This is likely to slow down rendering " "performance substantially, but it will make PStats graphs " - "more accurately reflect where the graphics bottlenecks are. " + "more accurately reflect where the graphics bottlenecks are, " + "although it is better to use timer queries when available. " "This variable is enabled only if PStats is compiled in.")); ConfigVariableBool gl_force_depth_stencil @@ -252,6 +260,8 @@ void CLP(init_classes)() { #ifndef OPENGLES CLP(OcclusionQueryContext)::init_type(); + CLP(TimerQueryContext)::init_type(); + CLP(LatencyQueryContext)::init_type(); #endif PandaSystem *ps = PandaSystem::get_global_ptr(); diff --git a/panda/src/glstuff/glmisc_src.h b/panda/src/glstuff/glmisc_src.h index 1d7e330f83..c57046ee27 100644 --- a/panda/src/glstuff/glmisc_src.h +++ b/panda/src/glstuff/glmisc_src.h @@ -58,6 +58,7 @@ extern ConfigVariableEnum gl_min_buffer_usage_hint; extern ConfigVariableBool gl_debug; extern ConfigVariableBool gl_debug_synchronous; extern ConfigVariableEnum gl_debug_abort_level; +extern ConfigVariableBool gl_debug_object_labels; extern ConfigVariableBool gl_debug_buffers; extern ConfigVariableBool gl_finish; extern ConfigVariableBool gl_force_depth_stencil; diff --git a/panda/src/glstuff/glstuff_src.cxx b/panda/src/glstuff/glstuff_src.cxx index 49d54804b8..518162a53a 100644 --- a/panda/src/glstuff/glstuff_src.cxx +++ b/panda/src/glstuff/glstuff_src.cxx @@ -22,6 +22,8 @@ #include "glVertexBufferContext_src.cxx" #include "glIndexBufferContext_src.cxx" #include "glOcclusionQueryContext_src.cxx" +#include "glTimerQueryContext_src.cxx" +#include "glLatencyQueryContext_src.cxx" #include "glGeomContext_src.cxx" #include "glGeomMunger_src.cxx" #include "glShaderContext_src.cxx" diff --git a/panda/src/glstuff/glstuff_src.h b/panda/src/glstuff/glstuff_src.h index 0892a8bba3..cb0bcb4941 100644 --- a/panda/src/glstuff/glstuff_src.h +++ b/panda/src/glstuff/glstuff_src.h @@ -36,6 +36,8 @@ #include "glVertexBufferContext_src.h" #include "glIndexBufferContext_src.h" #include "glOcclusionQueryContext_src.h" +#include "glTimerQueryContext_src.h" +#include "glLatencyQueryContext_src.h" #include "glGeomContext_src.h" #include "glGeomMunger_src.h" #include "glShaderContext_src.h" diff --git a/panda/src/glstuff/panda_glext.h b/panda/src/glstuff/panda_glext.h index 3af15892cd..6af0dacb1e 100644 --- a/panda/src/glstuff/panda_glext.h +++ b/panda/src/glstuff/panda_glext.h @@ -6,7 +6,7 @@ extern "C" { /* ** Copyright (c) 2007-2012 The Khronos Group Inc. -** +** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including @@ -14,10 +14,10 @@ extern "C" { ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: -** +** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. -** +** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. diff --git a/panda/src/gobj/Sources.pp b/panda/src/gobj/Sources.pp index 547c12cea6..a79670dd6d 100644 --- a/panda/src/gobj/Sources.pp +++ b/panda/src/gobj/Sources.pp @@ -66,6 +66,7 @@ textureReloadRequest.I textureReloadRequest.h \ textureStage.I textureStage.h \ textureStagePool.I textureStagePool.h \ + timerQueryContext.I timerQueryContext.h \ transformBlend.I transformBlend.h \ transformBlendTable.I transformBlendTable.h \ transformTable.I transformTable.h \ @@ -136,6 +137,7 @@ textureReloadRequest.cxx \ textureStage.cxx \ textureStagePool.cxx \ + timerQueryContext.cxx \ transformBlend.cxx \ transformBlendTable.cxx \ transformTable.cxx \ @@ -208,6 +210,7 @@ textureReloadRequest.I textureReloadRequest.h \ textureStage.I textureStage.h \ textureStagePool.I textureStagePool.h \ + timerQueryContext.I timerQueryContext.h \ transformBlend.I transformBlend.h \ transformBlendTable.I transformBlendTable.h \ transformTable.I transformTable.h \ diff --git a/panda/src/gobj/config_gobj.cxx b/panda/src/gobj/config_gobj.cxx index 9357816d67..1eea586b13 100644 --- a/panda/src/gobj/config_gobj.cxx +++ b/panda/src/gobj/config_gobj.cxx @@ -44,6 +44,7 @@ #include "textureReloadRequest.h" #include "textureStage.h" #include "textureContext.h" +#include "timerQueryContext.h" #include "shader.h" #include "shaderContext.h" #include "transformBlend.h" @@ -92,7 +93,7 @@ ConfigVariableInt texture_scale_limit "to both X and Y.")); ConfigVariableList exclude_texture_scale -("exclude-texture-scale", +("exclude-texture-scale", PRC_DESC("This is a list of glob patterns for texture filenames " "(excluding the directory part of the filename, but including " "the extension); for instance, 'digits_*.png'. Any texture " @@ -287,7 +288,7 @@ ConfigVariableInt vertex_column_alignment "this alignment for the vertex animation columns only.")); ConfigVariableBool vertex_animation_align_16 -("vertex-animation-align-16", +("vertex-animation-align-16", #ifdef LINMATH_ALIGN true, #else @@ -343,7 +344,7 @@ ConfigVariableInt simple_image_size ConfigVariableDouble simple_image_threshold ("simple-image-threshold", 0.1, - PRC_DESC("This is a value that indicates how closely a texture's " + PRC_DESC("This is a value that indicates how closely a texture's " "generated simple " "image should approximate the original image. The smaller the " "number, the closer the match; small numbers will result in " @@ -568,6 +569,7 @@ ConfigureFn(config_gobj) { TexturePoolFilter::init_type(); TextureReloadRequest::init_type(); TextureStage::init_type(); + TimerQueryContext::init_type(); TransformBlend::init_type(); TransformBlendTable::init_type(); TransformTable::init_type(); diff --git a/panda/src/gobj/p3gobj_composite1.cxx b/panda/src/gobj/p3gobj_composite1.cxx index c758d30a00..a584185f68 100644 --- a/panda/src/gobj/p3gobj_composite1.cxx +++ b/panda/src/gobj/p3gobj_composite1.cxx @@ -30,3 +30,6 @@ #include "indexBufferContext.cxx" #include "internalName.cxx" #include "lens.cxx" +#include "material.cxx" +#include "materialPool.cxx" +#include "matrixLens.cxx" diff --git a/panda/src/gobj/p3gobj_composite2.cxx b/panda/src/gobj/p3gobj_composite2.cxx index 0238604980..d25852b69c 100644 --- a/panda/src/gobj/p3gobj_composite2.cxx +++ b/panda/src/gobj/p3gobj_composite2.cxx @@ -1,6 +1,3 @@ -#include "material.cxx" -#include "materialPool.cxx" -#include "matrixLens.cxx" #include "occlusionQueryContext.cxx" #include "orthographicLens.cxx" #include "perspectiveLens.cxx" @@ -21,6 +18,7 @@ #include "textureReloadRequest.cxx" #include "textureStage.cxx" #include "textureStagePool.cxx" +#include "timerQueryContext.cxx" #include "transformBlend.cxx" #include "transformBlendTable.cxx" #include "transformTable.cxx" diff --git a/panda/src/gobj/timerQueryContext.I b/panda/src/gobj/timerQueryContext.I new file mode 100644 index 0000000000..be86483329 --- /dev/null +++ b/panda/src/gobj/timerQueryContext.I @@ -0,0 +1,26 @@ +// Filename: occlusionQueryContext.I +// Created by: rdb (22Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////////// +// Function: TimerQueryContext::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE TimerQueryContext:: +TimerQueryContext(int pstats_index) : + _pstats_index(pstats_index), + _frame_index(ClockObject::get_global_clock()->get_frame_count()) +{ +} diff --git a/panda/src/gobj/timerQueryContext.cxx b/panda/src/gobj/timerQueryContext.cxx new file mode 100644 index 0000000000..c19131f5fc --- /dev/null +++ b/panda/src/gobj/timerQueryContext.cxx @@ -0,0 +1,35 @@ +// Filename: timerQueryContext.cxx +// Created by: rdb (22Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#include "timerQueryContext.h" + +TypeHandle TimerQueryContext::_type_handle; + +//////////////////////////////////////////////////////////////////// +// Function: TimerQueryContext::get_timestamp +// Access: Public, Virtual +// Description: Returns the timestamp that is the result of this +// timer query. There's no guarantee about which +// clock this uses, the only guarantee is that +// subtracting a start time from an end time should +// yield a time in seconds. +// If is_answer_ready() did not return true, this +// function may block before it returns. +// +// It is only valid to call this from the draw thread. +//////////////////////////////////////////////////////////////////// +double TimerQueryContext:: +get_timestamp() const { + return 0.0; +} diff --git a/panda/src/gobj/timerQueryContext.h b/panda/src/gobj/timerQueryContext.h new file mode 100644 index 0000000000..429dc65917 --- /dev/null +++ b/panda/src/gobj/timerQueryContext.h @@ -0,0 +1,60 @@ +// Filename: timerQueryContext.h +// Created by: rdb (22Aug14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#ifndef TIMERQUERYCONTEXT_H +#define TIMERQUERYCONTEXT_H + +#include "pandabase.h" +#include "queryContext.h" +#include "clockObject.h" +#include "pStatCollector.h" + +//////////////////////////////////////////////////////////////////// +// Class : TimerQueryContext +// Description : +//////////////////////////////////////////////////////////////////// +class EXPCL_PANDA_GOBJ TimerQueryContext : public QueryContext { +public: + INLINE TimerQueryContext(int pstats_index); + + ALLOC_DELETED_CHAIN(TimerQueryContext); + + virtual double get_timestamp() const=0; + + int _frame_index; + int _pstats_index; + +public: + static TypeHandle get_class_type() { + return _type_handle; + } + static void init_type() { + QueryContext::init_type(); + register_type(_type_handle, "TimerQueryContext", + QueryContext::get_class_type()); + } + virtual TypeHandle get_type() const { + return get_class_type(); + } + virtual TypeHandle force_init_type() {init_type(); return get_class_type();} + +private: + static TypeHandle _type_handle; + + friend class PreparedGraphicsObjects; +}; + +#include "timerQueryContext.I" + +#endif diff --git a/panda/src/gsgbase/graphicsStateGuardianBase.h b/panda/src/gsgbase/graphicsStateGuardianBase.h index 33e3793edd..32022ebe9a 100644 --- a/panda/src/gsgbase/graphicsStateGuardianBase.h +++ b/panda/src/gsgbase/graphicsStateGuardianBase.h @@ -32,7 +32,6 @@ class GraphicsOutputBase; class VertexBufferContext; class IndexBufferContext; -class OcclusionQueryContext; class GeomContext; class GeomNode; class Geom; @@ -123,7 +122,6 @@ PUBLISHED: virtual bool get_supports_multisample() const=0; virtual int get_supported_geom_rendering() const=0; - virtual bool get_supports_occlusion_query() const=0; virtual bool get_supports_shadow_filter() const=0; public: @@ -153,16 +151,13 @@ public: virtual ShaderContext *prepare_shader(Shader *shader)=0; virtual void release_shader(ShaderContext *sc)=0; - + virtual VertexBufferContext *prepare_vertex_buffer(GeomVertexArrayData *data)=0; virtual void release_vertex_buffer(VertexBufferContext *vbc)=0; virtual IndexBufferContext *prepare_index_buffer(GeomPrimitive *data)=0; virtual void release_index_buffer(IndexBufferContext *ibc)=0; - virtual void begin_occlusion_query()=0; - virtual PT(OcclusionQueryContext) end_occlusion_query()=0; - virtual void dispatch_compute(int size_x, int size_y, int size_z)=0; virtual PT(GeomMunger) get_geom_munger(const RenderState *state, diff --git a/panda/src/pstatclient/config_pstats.cxx b/panda/src/pstatclient/config_pstats.cxx index 7a78718c86..a529dba637 100644 --- a/panda/src/pstatclient/config_pstats.cxx +++ b/panda/src/pstatclient/config_pstats.cxx @@ -68,6 +68,17 @@ ConfigVariableDouble pstats_target_frame_rate "This frame rate is marked with a different-colored line; " "otherwise, this setting has no effect.")); +ConfigVariableBool pstats_gpu_timing +("pstats-gpu-timing", false, + PRC_DESC("Set this true to query the graphics library for the actual time " + "that graphics operations take to execute on the video card. " + "Enabling this will harm performance, but this information can " + "be more useful than the regular Draw information in tracking " + "down bottlenecks, because the CPU-based Draw collectors only " + "measure how long it takes for the API call to complete, which " + "is not usually an accurate reflectino of how long the actual " + "operation takes on the video card.")); + // The rest are different in that they directly control the server, // not the client. ConfigVariableBool pstats_scroll_mode diff --git a/panda/src/pstatclient/config_pstats.h b/panda/src/pstatclient/config_pstats.h index 2d818af324..be9b0e1e49 100644 --- a/panda/src/pstatclient/config_pstats.h +++ b/panda/src/pstatclient/config_pstats.h @@ -38,6 +38,7 @@ extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_tcp_ratio; extern EXPCL_PANDA_PSTATCLIENT ConfigVariableString pstats_host; extern EXPCL_PANDA_PSTATCLIENT ConfigVariableInt pstats_port; extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_target_frame_rate; +extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_gpu_timing; extern EXPCL_PANDA_PSTATCLIENT ConfigVariableBool pstats_scroll_mode; extern EXPCL_PANDA_PSTATCLIENT ConfigVariableDouble pstats_history; diff --git a/panda/src/pstatclient/pStatClient.cxx b/panda/src/pstatclient/pStatClient.cxx index 6417891a90..fa526afd69 100644 --- a/panda/src/pstatclient/pStatClient.cxx +++ b/panda/src/pstatclient/pStatClient.cxx @@ -152,7 +152,7 @@ get_collector_fullname(int index) const { if (parent_index == 0) { return collector->get_name(); } else { - return get_collector_fullname(parent_index) + ":" + + return get_collector_fullname(parent_index) + ":" + collector->get_name(); } } @@ -180,7 +180,6 @@ get_main_thread() const { return PStatThread((PStatClient *)this, 0); } - //////////////////////////////////////////////////////////////////// // Function: PStatClient::get_current_thread // Access: Published @@ -191,7 +190,7 @@ get_main_thread() const { PStatThread PStatClient:: get_current_thread() const { if (!client_is_connected()) { - // No need to make the relatively expensive call to + // No need to make the relatively expensive call to // Thread::get_current_thread() if we're not even connected. return get_main_thread(); } @@ -222,10 +221,10 @@ main_tick() { _mmap_size_pcollector.set_level(MemoryUsage::get_panda_mmap_size()); - + TypeRegistry *type_reg = TypeRegistry::ptr(); int num_typehandles = type_reg->get_num_typehandles(); - + while ((int)type_handle_cols.size() < num_typehandles) { type_handle_cols.push_back(TypeHandleCollector()); } @@ -261,7 +260,7 @@ main_tick() { case TypeHandle::MC_limit: // Not used. break; - } + } } } size_t min_usage = (single_total_usage + array_total_usage + dc_active_total_usage + dc_inactive_total_usage) / 1024; @@ -288,7 +287,7 @@ main_tick() { case TypeHandle::MC_singleton: category = "Heap:Single"; break; - + case TypeHandle::MC_array: category = "Heap:Array"; break; @@ -315,11 +314,11 @@ main_tick() { case TypeHandle::MC_singleton: single_other_usage -= usage; break; - + case TypeHandle::MC_array: array_other_usage -= usage; break; - + case TypeHandle::MC_deleted_chain_active: dc_active_other_usage -= usage; break; @@ -348,7 +347,7 @@ main_tick() { #endif // DO_MEMORY_USAGE get_global_pstats()->client_main_tick(); -} +} //////////////////////////////////////////////////////////////////// // Function: PStatClient::thread_tick @@ -359,7 +358,7 @@ main_tick() { void PStatClient:: thread_tick(const string &sync_name) { get_global_pstats()->client_thread_tick(sync_name); -} +} //////////////////////////////////////////////////////////////////// // Function: PStatClient::client_main_tick @@ -383,8 +382,8 @@ client_main_tick() { _threads_by_sync_name.find("Main"); if (ni != _threads_by_sync_name.end()) { const vector_int &indices = (*ni).second; - for (vector_int::const_iterator vi = indices.begin(); - vi != indices.end(); + for (vector_int::const_iterator vi = indices.begin(); + vi != indices.end(); ++vi) { _impl->new_frame(*vi); } @@ -407,8 +406,8 @@ client_thread_tick(const string &sync_name) { _threads_by_sync_name.find(sync_name); if (ni != _threads_by_sync_name.end()) { const vector_int &indices = (*ni).second; - for (vector_int::const_iterator vi = indices.begin(); - vi != indices.end(); + for (vector_int::const_iterator vi = indices.begin(); + vi != indices.end(); ++vi) { _impl->new_frame(*vi); } @@ -463,7 +462,7 @@ PStatClient *PStatClient:: get_global_pstats() { if (_global_pstats == (PStatClient *)NULL) { _global_pstats = new PStatClient; - + ClockObject::_start_clock_wait = start_clock_wait; ClockObject::_start_clock_busy_wait = start_clock_busy_wait; ClockObject::_stop_clock_wait = stop_clock_wait; @@ -616,8 +615,8 @@ do_make_thread(Thread *thread) { // We have seen a thread with this name before. Can we re-use any // of them? const vector_int &indices = (*ni).second; - for (vector_int::const_iterator vi = indices.begin(); - vi != indices.end(); + for (vector_int::const_iterator vi = indices.begin(); + vi != indices.end(); ++vi) { int index = (*vi); nassertr(index >= 0 && index < _num_threads, PStatThread()); @@ -637,20 +636,26 @@ do_make_thread(Thread *thread) { int new_index = _num_threads; thread->set_pstats_index(new_index); thread->set_pstats_callback(this); - _threads_by_name[thread->get_name()].push_back(new_index); - _threads_by_sync_name[thread->get_sync_name()].push_back(new_index); - + InternalThread *pthread = new InternalThread(thread); add_thread(pthread); - // We need an additional PerThreadData for this thread in all of the - // collectors. - CollectorPointer *collectors = (CollectorPointer *)_collectors; - for (int ci = 0; ci < _num_collectors; ++ci) { - Collector *collector = collectors[ci]; - collector->_per_thread.push_back(PerThreadData()); - nassertr((int)collector->_per_thread.size() == _num_threads, PStatThread()); - } + return PStatThread(this, new_index); +} + +//////////////////////////////////////////////////////////////////// +// Function: PStatClient::make_gpu_thread +// Access: Private +// Description: Returns a PStatThread representing the GPU. +// This is normally called by the GSG only. +//////////////////////////////////////////////////////////////////// +PStatThread PStatClient:: +make_gpu_thread(const string &name) { + ReMutexHolder holder(_lock); + int new_index = _num_threads; + + InternalThread *pthread = new InternalThread(name, "GPU"); + add_thread(pthread); return PStatThread(this, new_index); } @@ -960,7 +965,7 @@ get_level(int collector_index, int thread_index) const { // Description: This function is added as a hook into ClockObject, so // that we may time the delay for // ClockObject::wait_until(), used for certain special -// clock modes. +// clock modes. // // This callback is a hack around the fact that we can't // let the ClockObject directly create a PStatCollector, @@ -977,7 +982,7 @@ start_clock_wait() { // Description: This function is added as a hook into ClockObject, so // that we may time the delay for // ClockObject::wait_until(), used for certain special -// clock modes. +// clock modes. // // This callback is a hack around the fact that we can't // let the ClockObject directly create a PStatCollector, @@ -995,7 +1000,7 @@ start_clock_busy_wait() { // Description: This function is added as a hook into ClockObject, so // that we may time the delay for // ClockObject::wait_until(), used for certain special -// clock modes. +// clock modes. // // This callback is a hack around the fact that we can't // let the ClockObject directly create a PStatCollector, @@ -1051,6 +1056,9 @@ add_collector(PStatClient::Collector *collector) { //////////////////////////////////////////////////////////////////// void PStatClient:: add_thread(PStatClient::InternalThread *thread) { + _threads_by_name[thread->_name].push_back(_num_threads); + _threads_by_sync_name[thread->_sync_name].push_back(_num_threads); + if (_num_threads >= _threads_size) { // We need to grow the array. We have to be careful here, because // there might be clients accessing the array right now who are @@ -1071,12 +1079,21 @@ add_thread(PStatClient::InternalThread *thread) { // and then no more.) new_threads[_num_threads] = thread; - AtomicAdjust::inc(_num_threads); } else { ThreadPointer *threads = (ThreadPointer *)_threads; threads[_num_threads] = thread; - AtomicAdjust::inc(_num_threads); + } + + AtomicAdjust::inc(_num_threads); + + // We need an additional PerThreadData for this thread in all of the + // collectors. + CollectorPointer *collectors = (CollectorPointer *)_collectors; + for (int ci = 0; ci < _num_collectors; ++ci) { + Collector *collector = collectors[ci]; + collector->_per_thread.push_back(PerThreadData()); + nassertv((int)collector->_per_thread.size() == _num_threads); } } @@ -1148,7 +1165,7 @@ make_def(const PStatClient *client, int this_index) { if (_def == (PStatCollectorDef *)NULL) { _def = new PStatCollectorDef(this_index, _name); if (_parent_index != this_index) { - const PStatCollectorDef *parent_def = + const PStatCollectorDef *parent_def = client->get_collector_def(_parent_index); _def->set_parent(*parent_def); } @@ -1157,9 +1174,9 @@ make_def(const PStatClient *client, int this_index) { } //////////////////////////////////////////////////////////////////// -// Function: PStatClient::Collector::make_def +// Function: PStatClient::InternalThread::Constructor // Access: Private -// Description: Creates the new PStatCollectorDef for this collector. +// Description: //////////////////////////////////////////////////////////////////// PStatClient::InternalThread:: InternalThread(Thread *thread) : @@ -1174,4 +1191,22 @@ InternalThread(Thread *thread) : { } +//////////////////////////////////////////////////////////////////// +// Function: PStatClient::InternalThread::Constructor +// Access: Private +// Description: +//////////////////////////////////////////////////////////////////// +PStatClient::InternalThread:: +InternalThread(const string &name, const string &sync_name) : + _thread(NULL), + _name(name), + _sync_name(sync_name), + _is_active(false), + _frame_number(0), + _next_packet(0.0), + _thread_active(true), + _thread_lock(string("PStatClient::InternalThread ") + name) +{ +} + #endif // DO_PSTATS diff --git a/panda/src/pstatclient/pStatClient.h b/panda/src/pstatclient/pStatClient.h index 809d3d438c..1b733a543d 100644 --- a/panda/src/pstatclient/pStatClient.h +++ b/panda/src/pstatclient/pStatClient.h @@ -35,6 +35,7 @@ class PStatCollector; class PStatCollectorDef; class PStatThread; +class GraphicsStateGuardian; //////////////////////////////////////////////////////////////////// // Class : PStatClient @@ -113,6 +114,7 @@ private: PStatThread do_get_current_thread() const; PStatThread make_thread(Thread *thread); PStatThread do_make_thread(Thread *thread); + PStatThread make_gpu_thread(const string &name); bool is_active(int collector_index, int thread_index) const; bool is_started(int collector_index, int thread_index) const; @@ -171,7 +173,7 @@ private: INLINE const string &get_name() const; INLINE bool is_active() const; INLINE PStatCollectorDef *get_def(const PStatClient *client, int this_index) const; - + private: void make_def(const PStatClient *client, int this_index); @@ -201,6 +203,7 @@ private: class InternalThread { public: InternalThread(Thread *thread); + InternalThread(const string &name, const string &sync_name = "Main"); WPT(Thread) _thread; string _name; @@ -248,6 +251,7 @@ private: friend class PStatCollector; friend class PStatThread; friend class PStatClientImpl; + friend class GraphicsStateGuardian; }; #include "pStatClient.I" @@ -272,4 +276,3 @@ PUBLISHED: #endif // DO_PSTATS #endif - diff --git a/panda/src/pstatclient/pStatClientImpl.cxx b/panda/src/pstatclient/pStatClientImpl.cxx index 578f214824..2d1feb7853 100644 --- a/panda/src/pstatclient/pStatClientImpl.cxx +++ b/panda/src/pstatclient/pStatClientImpl.cxx @@ -47,7 +47,7 @@ PStatClientImpl(PStatClient *client) : _reader(this, 0), _writer(this, pstats_threaded_write ? 1 : 0) { - _writer.set_max_queue_size(pstats_max_queue_size); + _writer.set_max_queue_size(pstats_max_queue_size); _reader.set_tcp_header_size(4); _writer.set_tcp_header_size(4); _is_connected = false; @@ -201,10 +201,10 @@ new_frame(int thread_index) { // Fill up the level data for all the collectors who have level // data for this pthread. int num_collectors = _client->_num_collectors; - PStatClient::CollectorPointer *collectors = + PStatClient::CollectorPointer *collectors = (PStatClient::CollectorPointer *)_client->_collectors; for (int i = 0; i < num_collectors; i++) { - const PStatClient::PerThreadData &ptd = + const PStatClient::PerThreadData &ptd = collectors[i]->_per_thread[thread_index]; if (ptd._has_level) { pthread->_frame_data.add_level(i, ptd._level); @@ -219,13 +219,55 @@ new_frame(int thread_index) { _client->start(0, thread_index, frame_start); // Also record the time for the PStats operation itself. + int current_thread_index = Thread::get_current_thread()->get_pstats_index(); int pstats_index = PStatClient::_pstats_pcollector.get_index(); - _client->start(pstats_index, thread_index, frame_start); + _client->start(pstats_index, current_thread_index, frame_start); if (frame_number != -1) { transmit_frame_data(thread_index, frame_number, frame_data); } - _client->stop(pstats_index, thread_index, get_real_time()); + _client->stop(pstats_index, current_thread_index, get_real_time()); +} + +//////////////////////////////////////////////////////////////////// +// Function: PStatClientImpl::add_frame +// Access: Public +// Description: Slightly lower-level interface than new_frame that +// takes a set of frame data. +//////////////////////////////////////////////////////////////////// +void PStatClientImpl:: +add_frame(int thread_index, const PStatFrameData &frame_data) { + nassertv(thread_index >= 0 && thread_index < _client->_num_threads); + + PStatClient::InternalThread *pthread = _client->get_thread_ptr(thread_index); + + // If we're the main thread, we should exchange control packets with + // the server. + if (thread_index == 0) { + transmit_control_data(); + } + + // If we've got the UDP port by the time the frame starts, it's + // time to become active and start actually tracking data. + if (_got_udp_port) { + pthread->_is_active = true; + } + + if (!pthread->_is_active) { + return; + } + + int frame_number = pthread->_frame_number++; + + // Also record the time for the PStats operation itself. + int current_thread_index = Thread::get_current_thread()->get_pstats_index(); + int pstats_index = PStatClient::_pstats_pcollector.get_index(); + _client->start(pstats_index, current_thread_index); + + if (frame_number != -1) { + transmit_frame_data(thread_index, frame_number, frame_data); + } + _client->stop(pstats_index, current_thread_index); } //////////////////////////////////////////////////////////////////// @@ -235,7 +277,7 @@ new_frame(int thread_index) { // transmit the latest data to the PStatServer. //////////////////////////////////////////////////////////////////// void PStatClientImpl:: -transmit_frame_data(int thread_index, int frame_number, +transmit_frame_data(int thread_index, int frame_number, const PStatFrameData &frame_data) { nassertv(thread_index >= 0 && thread_index < _client->_num_threads); PStatClient::InternalThread *thread = _client->get_thread_ptr(thread_index); @@ -397,7 +439,7 @@ report_new_collectors() { // single datagram. So we limit ourselves here to sending only // half that many. static const int max_collectors_at_once = 700; - + while (_is_connected && _collectors_reported < _client->_num_collectors) { PStatClientControlMessage message; message._type = PStatClientControlMessage::T_define_collectors; @@ -408,7 +450,7 @@ report_new_collectors() { _collectors_reported++; i++; } - + Datagram datagram; message.encode(datagram); _writer.send(datagram, _tcp_connection, true); @@ -427,7 +469,7 @@ report_new_threads() { PStatClientControlMessage message; message._type = PStatClientControlMessage::T_define_threads; message._first_thread_index = _threads_reported; - PStatClient::ThreadPointer *threads = + PStatClient::ThreadPointer *threads = (PStatClient::ThreadPointer *)_client->_threads; while (_threads_reported < _client->_num_threads) { message._names.push_back(threads[_threads_reported]->_name); diff --git a/panda/src/pstatclient/pStatClientImpl.h b/panda/src/pstatclient/pStatClientImpl.h index 28ed2d7cb0..7f95584e09 100644 --- a/panda/src/pstatclient/pStatClientImpl.h +++ b/panda/src/pstatclient/pStatClientImpl.h @@ -72,6 +72,7 @@ public: INLINE void client_resume_after_pause(); void new_frame(int thread_index); + void add_frame(int thread_index, const PStatFrameData &frame_data); private: void transmit_frame_data(int thread_index, int frame_number, @@ -90,7 +91,7 @@ private: void report_new_threads(); void handle_server_control_message(const PStatServerControlMessage &message); - virtual void connection_reset(const PT(Connection) &connection, + virtual void connection_reset(const PT(Connection) &connection, bool okflag); PStatClient *_client; diff --git a/panda/src/pstatclient/pStatProperties.cxx b/panda/src/pstatclient/pStatProperties.cxx index 463a3bd13b..f14047732d 100644 --- a/panda/src/pstatclient/pStatProperties.cxx +++ b/panda/src/pstatclient/pStatProperties.cxx @@ -152,9 +152,10 @@ static TimeCollectorProperties time_properties[] = { { 1, "Draw:Flush", { 0.9, 0.2, 0.7 } }, { 1, "Draw:Sync", { 0.5, 0.7, 0.7 } }, { 0, "Draw:Transform", { 0.0, 0.5, 0.0 } }, - { 0, "Draw:Primitive", { 0.0, 0.0, 0.5 } }, - { 0, "Draw:Set State", { 0.2, 0.6, 0.8 } }, + { 1, "Draw:Primitive", { 0.0, 0.0, 0.5 } }, + { 1, "Draw:Set State", { 0.2, 0.6, 0.8 } }, { 1, "Draw:Wait occlusion", { 1.0, 0.5, 0.0 } }, + { 1, "Draw:Bind FBO", { 0.0, 0.8, 0.8 } }, { 0, NULL } }; @@ -226,6 +227,7 @@ static LevelCollectorProperties level_properties[] = { { 1, "Dirty PipelineCyclers", { 0.2, 0.2, 0.2 }, "", 5000 }, { 1, "Collision Volumes", { 1.0, 0.8, 0.5 }, "", 500 }, { 1, "Collision Tests", { 0.5, 0.8, 1.0 }, "", 100 }, + { 1, "Command latency", { 0.8, 0.2, 0.0 }, "ms", 10, 1.0 / 1000.0 }, { 0, NULL } }; @@ -339,7 +341,7 @@ initialize_collector_def(const PStatClient *client, PStatCollectorDef *def) { ("pstats-factor-" + config_name, 1.0, "", ConfigVariable::F_dynamic); ConfigVariableDouble pstats_color ("pstats-color-" + config_name, 0.0, "", ConfigVariable::F_dynamic); - + if (pstats_active.has_value()) { def->_is_active = pstats_active; def->_active_explicitly_set = true; diff --git a/panda/src/pstatclient/pStatThread.I b/panda/src/pstatclient/pStatThread.I index 36cd57e539..bf9d673eb9 100644 --- a/panda/src/pstatclient/pStatThread.I +++ b/panda/src/pstatclient/pStatThread.I @@ -26,7 +26,7 @@ PStatThread() { //////////////////////////////////////////////////////////////////// // Function: PStatThread::Constructor -// Access: Private +// Access: Published // Description: Normally, this constructor is called only from // PStatClient. Use one of the constructors below to // create your own Thread. @@ -109,6 +109,19 @@ new_frame() { #endif } +//////////////////////////////////////////////////////////////////// +// Function: PStatThread::add_frame +// Access: Public +// Description: This is a slightly lower-level version of new_frame +// that also specifies the data to send for this frame. +//////////////////////////////////////////////////////////////////// +INLINE void PStatThread:: +add_frame(const PStatFrameData &frame_data) { +#ifdef DO_PSTATS + _client->get_impl()->add_frame(_index, frame_data); +#endif +} + //////////////////////////////////////////////////////////////////// // Function: PStatThread::get_index // Access: Published diff --git a/panda/src/pstatclient/pStatThread.h b/panda/src/pstatclient/pStatThread.h index 8e684a3cd3..df0435585b 100644 --- a/panda/src/pstatclient/pStatThread.h +++ b/panda/src/pstatclient/pStatThread.h @@ -18,6 +18,7 @@ #include "pandabase.h" #include "pStatClient.h" +#include "pStatFrameData.h" class Thread; @@ -30,15 +31,16 @@ class Thread; class EXPCL_PANDA_PSTATCLIENT PStatThread { private: INLINE PStatThread(); - INLINE PStatThread(PStatClient *client, int index); PUBLISHED: + INLINE PStatThread(PStatClient *client, int index); INLINE PStatThread(Thread *thread, PStatClient *client = NULL); INLINE PStatThread(const PStatThread ©); INLINE void operator = (const PStatThread ©); INLINE void new_frame(); + INLINE void add_frame(const PStatFrameData &frame_data); Thread *get_thread() const; INLINE int get_index() const; diff --git a/panda/src/pstatclient/pStatTimer.h b/panda/src/pstatclient/pStatTimer.h index 060fd46f11..640838ecb6 100644 --- a/panda/src/pstatclient/pStatTimer.h +++ b/panda/src/pstatclient/pStatTimer.h @@ -38,12 +38,12 @@ public: INLINE PStatTimer(PStatCollector &collector, Thread *current_thread); INLINE ~PStatTimer(); -private: +protected: PStatCollector &_collector; PStatThread _thread; #else // DO_PSTATS - INLINE PStatTimer(PStatCollector &) { } + INLINE PStatTimer(PStatCollector &) { } INLINE PStatTimer(PStatCollector &, Thread *) { } INLINE ~PStatTimer() { } From a25a9e655ef27a225e7c48148a3f9037d85db128 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 25 Sep 2014 00:16:44 +0000 Subject: [PATCH 07/27] Support strip cut indices and (using those) support direct rendering of linestrips in OpenGL --- panda/src/display/standardMunger.cxx | 10 +- .../glstuff/glGraphicsStateGuardian_src.cxx | 133 +++++++++- .../src/glstuff/glGraphicsStateGuardian_src.h | 2 + panda/src/glstuff/panda_glext.h | 5 + panda/src/gobj/geomEnums.h | 4 +- panda/src/gobj/geomLinestrips.cxx | 53 +++- panda/src/gobj/geomLinestrips.h | 4 + panda/src/gobj/geomPrimitive.I | 26 +- panda/src/gobj/geomPrimitive.cxx | 238 +++++++++++++----- panda/src/gobj/geomPrimitive.h | 4 + panda/src/gobj/geomTristrips.cxx | 20 +- panda/src/gobj/geomTristrips.h | 1 + 12 files changed, 423 insertions(+), 77 deletions(-) diff --git a/panda/src/display/standardMunger.cxx b/panda/src/display/standardMunger.cxx index ab00378536..35c6231cd5 100644 --- a/panda/src/display/standardMunger.cxx +++ b/panda/src/display/standardMunger.cxx @@ -178,7 +178,10 @@ munge_geom_impl(CPT(Geom) &geom, CPT(GeomVertexData) &vertex_data, // Even beyond munging the vertex format, we have to convert the // Geom itself into a new primitive type the GSG can render // directly. - if ((unsupported_bits & Geom::GR_composite_bits) != 0) { + // If we don't support a strip cut index, it might be faster to + // just decompose it rather than draw them one by one. + if ((unsupported_bits & Geom::GR_composite_bits) != 0 || + (unsupported_bits & Geom::GR_strip_cut_index) != 0) { // This decomposes everything in the primitive, so that if (for // instance) the primitive contained both strips and fans, but // the GSG didn't support fans, it would decompose the strips @@ -224,7 +227,10 @@ premunge_geom_impl(CPT(Geom) &geom, CPT(GeomVertexData) &vertex_data) { // Even beyond munging the vertex format, we have to convert the // Geom itself into a new primitive type the GSG can render // directly. - if ((unsupported_bits & Geom::GR_composite_bits) != 0) { + // If we don't support a strip cut index, it might be faster to + // just decompose it rather than draw them one by one. + if ((unsupported_bits & Geom::GR_composite_bits) != 0 || + (unsupported_bits & Geom::GR_strip_cut_index) != 0) { // This decomposes everything in the primitive, so that if (for // instance) the primitive contained both strips and fans, but // the GSG didn't support fans, it would decompose the strips diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 818e03e7bc..a4c1211372 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -515,6 +515,7 @@ reset() { Geom::GR_point | Geom::GR_point_uniform_size | Geom::GR_indexed_other | Geom::GR_triangle_strip | Geom::GR_triangle_fan | + Geom::GR_line_strip | Geom::GR_flat_last_vertex; _supports_point_parameters = false; @@ -551,6 +552,30 @@ reset() { _supported_geom_rendering |= Geom::GR_point_sprite; } + _glPrimitiveRestartIndex = NULL; + + if (is_at_least_gl_version(4, 3) || has_extension("GL_ARB_ES3_compatibility")) { + // As long as we enable this, OpenGL will always use the highest possible index + // for a numeric type as strip cut index, which coincides with our convention. + // This saves us a call to glPrimitiveRestartIndex. + glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX); + _supported_geom_rendering |= Geom::GR_strip_cut_index; + + } else if (is_at_least_gl_version(3, 1)) { + glEnable(GL_PRIMITIVE_RESTART); + _supported_geom_rendering |= Geom::GR_strip_cut_index; + + _glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) + get_extension_func("glPrimitiveRestartIndex"); + + } else if (has_extension("GL_NV_primitive_restart")) { + glEnable(GL_PRIMITIVE_RESTART_NV); + _supported_geom_rendering |= Geom::GR_strip_cut_index; + + _glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) + get_extension_func("glPrimitiveRestartIndexNV"); + } + _supports_vertex_blend = has_extension("GL_ARB_vertex_blend"); if (_supports_vertex_blend) { @@ -3800,7 +3825,113 @@ draw_lines(const GeomPrimitivePipelineReader *reader, bool force) { //////////////////////////////////////////////////////////////////// bool CLP(GraphicsStateGuardian):: draw_linestrips(const GeomPrimitivePipelineReader *reader, bool force) { - return false; + PStatGPUTimer timer(this, _draw_primitive_pcollector, reader->get_current_thread()); + + report_my_gl_errors(); + +#ifndef NDEBUG + if (GLCAT.is_spam()) { + GLCAT.spam() << "draw_linestrips: " << *(reader->get_object()) << "\n"; + } +#endif // NDEBUG + +#ifdef SUPPORT_IMMEDIATE_MODE + if (_use_sender) { + draw_immediate_composite_primitives(reader, GL_LINE_STRIP); + + } else +#endif // SUPPORT_IMMEDIATE_MODE + { + if (reader->is_indexed() && + (_supported_geom_rendering & GeomEnums::GR_strip_cut_index) != 0) { + // One long triangle strip, connected by strip cut indices. + if (_glPrimitiveRestartIndex != NULL) { + _glPrimitiveRestartIndex(reader->get_strip_cut_index()); + } + + int num_vertices = reader->get_num_vertices(); + _vertices_other_pcollector.add_level(num_vertices); + _primitive_batches_other_pcollector.add_level(1); + + const unsigned char *client_pointer; + if (!setup_primitive(client_pointer, reader, force)) { + return false; + } +#ifndef OPENGLES + if (_supports_geometry_instancing && _instance_count > 0) { + _glDrawElementsInstanced(GL_LINE_STRIP, num_vertices, + get_numeric_type(reader->get_index_type()), + client_pointer, _instance_count); + } else +#endif + { + _glDrawRangeElements(GL_LINE_STRIP, + reader->get_min_vertex(), + reader->get_max_vertex(), + num_vertices, + get_numeric_type(reader->get_index_type()), + client_pointer); + } + } else { + // Send the individual line strips, stepping over the + // strip-cut indices. + CPTA_int ends = reader->get_ends(); + + _primitive_batches_other_pcollector.add_level(ends.size()); + if (reader->is_indexed()) { + const unsigned char *client_pointer; + if (!setup_primitive(client_pointer, reader, force)) { + return false; + } + int index_stride = reader->get_index_stride(); + GeomVertexReader mins(reader->get_mins(), 0); + GeomVertexReader maxs(reader->get_maxs(), 0); + nassertr(reader->get_mins()->get_num_rows() == (int)ends.size() && + reader->get_maxs()->get_num_rows() == (int)ends.size(), false); + + unsigned int start = 0; + for (size_t i = 0; i < ends.size(); i++) { + _vertices_other_pcollector.add_level(ends[i] - start); +#ifndef OPENGLES + if (_supports_geometry_instancing && _instance_count > 0) { + _glDrawElementsInstanced(GL_LINE_STRIP, ends[i] - start, + get_numeric_type(reader->get_index_type()), + client_pointer + start * index_stride, + _instance_count); + } else +#endif + { + _glDrawRangeElements(GL_LINE_STRIP, + mins.get_data1i(), maxs.get_data1i(), + ends[i] - start, + get_numeric_type(reader->get_index_type()), + client_pointer + start * index_stride); + } + start = ends[i] + 1; + } + } else { + unsigned int start = 0; + int first_vertex = reader->get_first_vertex(); + for (size_t i = 0; i < ends.size(); i++) { + _vertices_other_pcollector.add_level(ends[i] - start); +#ifndef OPENGLES + if (_supports_geometry_instancing && _instance_count > 0) { + _glDrawArraysInstanced(GL_LINE_STRIP, first_vertex + start, + ends[i] - start, _instance_count); + } else +#endif + { + glDrawArrays(GL_LINE_STRIP, first_vertex + start, + ends[i] - start); + } + start = ends[i] + 1; + } + } + } + } + + report_my_gl_errors(); + return true; } //////////////////////////////////////////////////////////////////// diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.h b/panda/src/glstuff/glGraphicsStateGuardian_src.h index b47c22ce48..bfb314e3a1 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.h +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.h @@ -598,6 +598,8 @@ public: PFNGLPOINTPARAMETERFVPROC _glPointParameterfv; bool _supports_point_sprite; + PFNGLPRIMITIVERESTARTINDEXPROC _glPrimitiveRestartIndex; + bool _supports_vertex_blend; PFNGLWEIGHTPOINTERARBPROC _glWeightPointer; PFNGLVERTEXBLENDARBPROC _glVertexBlend; diff --git a/panda/src/glstuff/panda_glext.h b/panda/src/glstuff/panda_glext.h index 6af0dacb1e..1fb1c55a0e 100644 --- a/panda/src/glstuff/panda_glext.h +++ b/panda/src/glstuff/panda_glext.h @@ -1163,6 +1163,11 @@ extern "C" { /* reuse GL_TEXTURE_IMMUTABLE_FORMAT */ #endif +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#endif + #ifndef GL_ARB_multitexture #define GL_TEXTURE0_ARB 0x84C0 #define GL_TEXTURE1_ARB 0x84C1 diff --git a/panda/src/gobj/geomEnums.h b/panda/src/gobj/geomEnums.h index e187398746..ffa4d14515 100644 --- a/panda/src/gobj/geomEnums.h +++ b/panda/src/gobj/geomEnums.h @@ -125,6 +125,9 @@ PUBLISHED: // The union of all of the above composite types. GR_composite_bits = 0x01c00, + // If strip-cut indices are used to restart a composite primitive. + GR_strip_cut_index = 0x20000, + // If the shade model requires a particular vertex for flat shading. GR_flat_first_vertex = 0x02000, GR_flat_last_vertex = 0x04000, @@ -216,4 +219,3 @@ EXPCL_PANDA_GOBJ ostream &operator << (ostream &out, GeomEnums::NumericType nume EXPCL_PANDA_GOBJ ostream &operator << (ostream &out, GeomEnums::Contents contents); #endif - diff --git a/panda/src/gobj/geomLinestrips.cxx b/panda/src/gobj/geomLinestrips.cxx index ea44f6b7ee..33c4d30814 100644 --- a/panda/src/gobj/geomLinestrips.cxx +++ b/panda/src/gobj/geomLinestrips.cxx @@ -89,7 +89,11 @@ get_primitive_type() const { int GeomLinestrips:: get_geom_rendering() const { if (is_indexed()) { - return GR_line_strip | GR_indexed_other; + if (get_num_primitives() > 1) { + return GR_line_strip | GR_indexed_other | GR_strip_cut_index; + } else { + return GR_line_strip | GR_indexed_other; + } } else { return GR_line_strip; } @@ -106,6 +110,20 @@ get_min_num_vertices_per_primitive() const { return 2; } +//////////////////////////////////////////////////////////////////// +// Function: GeomLinestrips::get_num_unused_vertices_per_primitive +// Access: Public, Virtual +// Description: Returns the number of vertices that are added between +// primitives that aren't, strictly speaking, part of +// the primitives themselves. This is used, for +// instance, to define degenerate triangles to connect +// otherwise disconnected triangle strips. +//////////////////////////////////////////////////////////////////// +int GeomLinestrips:: +get_num_unused_vertices_per_primitive() const { + return 1; +} + //////////////////////////////////////////////////////////////////// // Function: GeomLinestrips::draw // Access: Public, Virtual @@ -138,9 +156,13 @@ decompose_impl() const { lines->set_shade_model(get_shade_model()); CPTA_int ends = get_ends(); - int vi = 0; + int num_unused = get_num_unused_vertices_per_primitive(); + + int vi = -num_unused; int li = 0; while (li < (int)ends.size()) { + // Skip unused vertices between tristrips. + vi += num_unused; int end = ends[li]; nassertr(vi + 1 <= end, lines.p()); int v0 = get_vertex(vi); @@ -210,6 +232,33 @@ rotate_impl() const { return new_vertices; } +//////////////////////////////////////////////////////////////////// +// Function: GeomLinestrips::requires_unused_vertices +// Access: Protected, Virtual +// Description: Should be redefined to return true in any primitive +// that implements append_unused_vertices(). +//////////////////////////////////////////////////////////////////// +bool GeomLinestrips:: +requires_unused_vertices() const { + return true; +} + +//////////////////////////////////////////////////////////////////// +// Function: GeomLinestrips::append_unused_vertices +// Access: Protected, Virtual +// Description: Called when a new primitive is begun (other than the +// first primitive), this should add some degenerate +// vertices between primitives, if the primitive type +// requires that. The second parameter is the first +// vertex that begins the new primitive. +//////////////////////////////////////////////////////////////////// +void GeomLinestrips:: +append_unused_vertices(GeomVertexArrayData *vertices, int vertex) { + GeomVertexWriter to(vertices, 0); + to.set_row_unsafe(vertices->get_num_rows()); + to.add_data1i(get_strip_cut_index()); +} + //////////////////////////////////////////////////////////////////// // Function: GeomLinestrips::register_with_read_factory // Access: Public, Static diff --git a/panda/src/gobj/geomLinestrips.h b/panda/src/gobj/geomLinestrips.h index 4d373a9d21..c7bfea935f 100644 --- a/panda/src/gobj/geomLinestrips.h +++ b/panda/src/gobj/geomLinestrips.h @@ -34,6 +34,7 @@ public: virtual PrimitiveType get_primitive_type() const; virtual int get_geom_rendering() const; virtual int get_min_num_vertices_per_primitive() const; + virtual int get_num_unused_vertices_per_primitive() const; public: virtual bool draw(GraphicsStateGuardianBase *gsg, @@ -43,6 +44,9 @@ public: protected: virtual CPT(GeomPrimitive) decompose_impl() const; virtual CPT(GeomVertexArrayData) rotate_impl() const; + virtual bool requires_unused_vertices() const; + virtual void append_unused_vertices(GeomVertexArrayData *vertices, + int vertex); public: static void register_with_read_factory(); diff --git a/panda/src/gobj/geomPrimitive.I b/panda/src/gobj/geomPrimitive.I index da47eb154f..bda47efc56 100644 --- a/panda/src/gobj/geomPrimitive.I +++ b/panda/src/gobj/geomPrimitive.I @@ -129,7 +129,7 @@ get_first_vertex() const { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::get_num_vertices // Access: Published -// Description: Returns the number of vertices used by all the +// Description: Returns the number of indices used by all the // primitives in this object. //////////////////////////////////////////////////////////////////// INLINE int GeomPrimitive:: @@ -310,6 +310,20 @@ get_index_stride() const { return reader.get_index_stride(); } +//////////////////////////////////////////////////////////////////// +// Function: GeomPrimitive::get_strip_cut_index +// Access: Published +// Description: If relevant, returns the index value that may be +// used in some cases to signify the end of a +// primitive. This is typically the highest value +// that the numeric type can store. +//////////////////////////////////////////////////////////////////// +INLINE int GeomPrimitive:: +get_strip_cut_index() const { + CDReader cdata(_cycler); + return get_strip_cut_index(cdata->_index_type); +} + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::get_ends // Access: Published @@ -679,6 +693,16 @@ get_read_pointer(bool force) const { return _vertices_reader->get_read_pointer(force); } +//////////////////////////////////////////////////////////////////// +// Function: GeomPrimitivePipelineReader::get_strip_cut_index +// Access: Published +// Description: +//////////////////////////////////////////////////////////////////// +INLINE int GeomPrimitivePipelineReader:: +get_strip_cut_index() const { + return GeomPrimitive::get_strip_cut_index(_cdata->_index_type); +} + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitivePipelineReader::get_ends // Access: Public diff --git a/panda/src/gobj/geomPrimitive.cxx b/panda/src/gobj/geomPrimitive.cxx index 86d07499d0..8b7cb19e15 100644 --- a/panda/src/gobj/geomPrimitive.cxx +++ b/panda/src/gobj/geomPrimitive.cxx @@ -61,18 +61,18 @@ make_cow_copy() { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::Constructor // Access: Published -// Description: +// Description: //////////////////////////////////////////////////////////////////// GeomPrimitive:: GeomPrimitive(GeomPrimitive::UsageHint usage_hint) { CDWriter cdata(_cycler, true); cdata->_usage_hint = usage_hint; } - + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::Copy Constructor // Access: Published -// Description: +// Description: //////////////////////////////////////////////////////////////////// GeomPrimitive:: GeomPrimitive(const GeomPrimitive ©) : @@ -80,7 +80,7 @@ GeomPrimitive(const GeomPrimitive ©) : _cycler(copy._cycler) { } - + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::Copy Assignment Operator // Access: Published @@ -98,7 +98,7 @@ operator = (const GeomPrimitive ©) { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::Destructor // Access: Published, Virtual -// Description: +// Description: //////////////////////////////////////////////////////////////////// GeomPrimitive:: ~GeomPrimitive() { @@ -197,7 +197,7 @@ add_vertex(int vertex) { int num_primitives = get_num_primitives(); if (num_primitives > 0 && - requires_unused_vertices() && + requires_unused_vertices() && get_num_vertices() == get_primitive_end(num_primitives - 1)) { // If we are beginning a new primitive, give the derived class a // chance to insert some degenerate vertices. @@ -224,7 +224,7 @@ add_vertex(int vertex) { cdata->_got_minmax = false; return; } - + // Otherwise, we need to suddenly become an indexed primitive. do_make_indexed(cdata); } @@ -288,7 +288,7 @@ add_consecutive_vertices(int start, int num_vertices) { cdata->_got_minmax = false; return; } - + // Otherwise, we need to suddenly become an indexed primitive. do_make_indexed(cdata); } @@ -468,12 +468,18 @@ offset_vertices(int offset) { recompute_minmax(cdata); nassertv(cdata->_got_minmax); } - + consider_elevate_index_type(cdata, cdata->_max_vertex + offset); + int strip_cut_index = get_strip_cut_index(cdata->_index_type); + GeomVertexRewriter index(do_modify_vertices(cdata), 0); while (!index.is_at_end()) { - index.set_data1i(index.get_data1i() + offset); + int vertex = index.get_data1i(); + + if (vertex != strip_cut_index) { + index.set_data1i(vertex + offset); + } } } else { @@ -483,7 +489,7 @@ offset_vertices(int offset) { cdata->_modified = Geom::get_next_modified(); cdata->_got_minmax = false; - consider_elevate_index_type(cdata, + consider_elevate_index_type(cdata, cdata->_first_vertex + cdata->_num_vertices - 1); } } @@ -516,14 +522,19 @@ offset_vertices(int offset, int begin_row, int end_row) { if (is_indexed()) { CDWriter cdata(_cycler, true); - + + int strip_cut_index = get_strip_cut_index(cdata->_index_type); + // Calculate the maximum vertex over our range. int max_vertex = 0; { GeomVertexReader index_r(cdata->_vertices.get_read_pointer(), 0); index_r.set_row_unsafe(begin_row); for (int j = begin_row; j < end_row; ++j) { - max_vertex = max(max_vertex, index_r.get_data1i()); + int vertex = index_r.get_data1i(); + if (vertex != strip_cut_index) { + max_vertex = max(max_vertex, vertex); + } } } @@ -532,7 +543,10 @@ offset_vertices(int offset, int begin_row, int end_row) { GeomVertexRewriter index(do_modify_vertices(cdata), 0); index.set_row_unsafe(begin_row); for (int j = begin_row; j < end_row; ++j) { - index.set_data1i(index.get_data1i() + offset); + int vertex = index.get_data1i(); + if (vertex != strip_cut_index) { + index.set_data1i(vertex + offset); + } } } else { @@ -544,7 +558,7 @@ offset_vertices(int offset, int begin_row, int end_row) { cdata->_modified = Geom::get_next_modified(); cdata->_got_minmax = false; - consider_elevate_index_type(cdata, + consider_elevate_index_type(cdata, cdata->_first_vertex + cdata->_num_vertices - 1); } } @@ -554,17 +568,20 @@ offset_vertices(int offset, int begin_row, int end_row) { // Access: Published // Description: Converts the primitive from indexed to nonindexed by // duplicating vertices as necessary into the indicated -// dest GeomVertexData. +// dest GeomVertexData. Note: does not support +// primitives with strip cut indices. //////////////////////////////////////////////////////////////////// void GeomPrimitive:: make_nonindexed(GeomVertexData *dest, const GeomVertexData *source) { Thread *current_thread = Thread::get_current_thread(); int num_vertices = get_num_vertices(); int dest_start = dest->get_num_rows(); + int strip_cut_index = get_strip_cut_index(); dest->set_num_rows(dest_start + num_vertices); for (int i = 0; i < num_vertices; ++i) { int v = get_vertex(i); + nassertd(v != strip_cut_index) continue; dest->copy_row_from(dest_start + i, source, v, current_thread); } @@ -596,14 +613,18 @@ pack_vertices(GeomVertexData *dest, const GeomVertexData *source) { int num_vertices = get_num_vertices(); int dest_start = dest->get_num_rows(); + int strip_cut_index = get_strip_cut_index(); for (int i = 0; i < num_vertices; ++i) { int v = get_vertex(i); + if (v == strip_cut_index) { + continue; + } // Try to add the relation { v : size() }. If that succeeds, // great; if it doesn't, look up whatever we previously added // for v. - pair result = + pair result = copied_indices.insert(CopiedIndices::value_type(v, (int)copied_indices.size())); int v2 = (*result.first).second + dest_start; index.add_data1i(v2); @@ -613,7 +634,7 @@ pack_vertices(GeomVertexData *dest, const GeomVertexData *source) { dest->copy_row_from(v2, source, v, current_thread); } } - + set_vertices(new_vertices); } } @@ -643,7 +664,7 @@ make_indexed() { // Function: GeomPrimitive::get_primitive_start // Access: Published // Description: Returns the element within the _vertices list at which -// the nth primitive starts. +// the nth primitive starts. // // If i is one more than the highest valid primitive // vertex, the return value will be one more than the @@ -723,7 +744,7 @@ get_primitive_num_vertices(int n) const { } else { int num_unused_vertices_per_primitive = get_num_unused_vertices_per_primitive(); return cdata->_ends[n] - cdata->_ends[n - 1] - num_unused_vertices_per_primitive; - } + } } else { // This is a simple primitive type like a triangle: each primitive @@ -732,6 +753,28 @@ get_primitive_num_vertices(int n) const { } } +//////////////////////////////////////////////////////////////////// +// Function: GeomPrimitive::get_num_used_vertices +// Access: Published +// Description: Returns the number of vertices used by all of the +// primitives. This is the same as summing +// get_primitive_num_vertices(n) for n in +// get_num_primitives(). It is like get_num_vertices +// except that it excludes all of the degenerate +// vertices and strip-cut indices. +//////////////////////////////////////////////////////////////////// +int GeomPrimitive:: +get_num_used_vertices() const { + int num_primitives = get_num_primitives(); + + if (num_primitives > 0) { + return get_num_vertices() - ((num_primitives - 1) * + get_num_unused_vertices_per_primitive()); + } else { + return 0; + } +} + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::get_primitive_min_vertex // Access: Published @@ -959,10 +1002,14 @@ make_points() const { int num_vertices = get_num_vertices(); if (is_indexed()) { CPT(GeomVertexArrayData) vertices = get_vertices(); + int strip_cut_index = get_strip_cut_index(); GeomVertexReader index(vertices, 0); for (int vi = 0; vi < num_vertices; ++vi) { nassertr(!index.is_at_end(), NULL); - bits.set_bit(index.get_data1i()); + int vertex = index.get_data1i(); + if (vertex != strip_cut_index) { + bits.set_bit(vertex); + } } } else { int first_vertex = get_first_vertex(); @@ -996,14 +1043,13 @@ make_points() const { // Access: Published // Description: Decomposes a complex primitive type into a simpler // primitive type, for instance triangle strips to -// triangles, puts these in a new GeomPatches objectand returns a pointer to the new primitive +// triangles, puts these in a new GeomPatches object +// and returns a pointer to the new primitive // definition. If the decomposition cannot be // performed, this might return the original object. // // This method is useful for application code that wants -// to iterate through the set of triangles on the -// primitive without having to write handlers for each -// possible kind of primitive type. +// to use tesselation shaders on arbitrary geometry. //////////////////////////////////////////////////////////////////// CPT(GeomPrimitive) GeomPrimitive:: make_patches() const { @@ -1079,7 +1125,7 @@ request_resident() const { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::output // Access: Published, Virtual -// Description: +// Description: //////////////////////////////////////////////////////////////////// void GeomPrimitive:: output(ostream &out) const { @@ -1090,7 +1136,7 @@ output(ostream &out) const { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::write // Access: Published, Virtual -// Description: +// Description: //////////////////////////////////////////////////////////////////// void GeomPrimitive:: write(ostream &out, int indent_level) const { @@ -1448,7 +1494,7 @@ is_prepared(PreparedGraphicsObjects *prepared_objects) const { // rendered. //////////////////////////////////////////////////////////////////// IndexBufferContext *GeomPrimitive:: -prepare_now(PreparedGraphicsObjects *prepared_objects, +prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg) { nassertr(is_indexed(), NULL); @@ -1558,11 +1604,44 @@ clear_prepared(PreparedGraphicsObjects *prepared_objects) { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::get_highest_index_value // Access: Private, Static -// Description: Returns the largest index value that can be stored in -// an index of the indicated type. +// Description: Returns the largest index value that can be stored +// in an index of the indicated type, minus one (to +// leave room for a potential strip cut index) //////////////////////////////////////////////////////////////////// int GeomPrimitive:: get_highest_index_value(NumericType index_type) { + // Reserve the highest possible index because implementations use + // this as a strip-cut index. + switch (index_type) { + case NT_uint8: + return 0xff - 1; + + case NT_uint16: + return 0xffff - 1; + + case NT_uint32: + // We don't actually allow use of the sign bit, since all of our + // functions receive an "int" instead of an "unsigned int". + return 0x7fffffff - 1; + + default: + return 0; + } +} + +//////////////////////////////////////////////////////////////////// +// Function: GeomPrimitive::get_strip_cut_index +// Access: Private, Static +// Description: Returns the index of the indicated type that is +// reserved for use as a strip cut index, if enabled +// for the primitive. When the renderer encounters +// this index, it will restart the primitive. This +// is guaranteed not to point to an actual vertex. +//////////////////////////////////////////////////////////////////// +int GeomPrimitive:: +get_strip_cut_index(NumericType index_type) { + // Reserve the highest possible index because implementations use + // this as a strip-cut index. switch (index_type) { case NT_uint8: return 0xff; @@ -1571,12 +1650,8 @@ get_highest_index_value(NumericType index_type) { return 0xffff; case NT_uint32: - // We don't actually allow use of the sign bit, since all of our - // functions receive an "int" instead of an "unsigned int". - return 0x7fffffff; - default: - return 0; + return -1; } } @@ -1593,7 +1668,7 @@ get_highest_index_value(NumericType index_type) { //////////////////////////////////////////////////////////////////// void GeomPrimitive:: calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, - bool &found_any, + bool &found_any, const GeomVertexData *vertex_data, bool got_mat, const LMatrix4 &mat, const InternalName *column_name, @@ -1613,7 +1688,7 @@ calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, for (int i = 0; i < cdata->_num_vertices; i++) { reader.set_row_unsafe(cdata->_first_vertex + i); LPoint3 vertex = mat.xform_point(reader.get_data3()); - + if (found_any) { min_point.set(min(min_point[0], vertex[0]), min(min_point[1], vertex[1]), @@ -1631,7 +1706,7 @@ calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, for (int i = 0; i < cdata->_num_vertices; i++) { reader.set_row_unsafe(cdata->_first_vertex + i); const LVecBase3 &vertex = reader.get_data3(); - + if (found_any) { min_point.set(min(min_point[0], vertex[0]), min(min_point[1], vertex[1]), @@ -1650,13 +1725,17 @@ calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, } else { // Indexed case. GeomVertexReader index(cdata->_vertices.get_read_pointer(), 0, current_thread); + int strip_cut_index = get_strip_cut_index(cdata->_index_type); if (got_mat) { while (!index.is_at_end()) { int ii = index.get_data1i(); + if (ii == strip_cut_index) { + continue; + } reader.set_row_unsafe(ii); LPoint3 vertex = mat.xform_point(reader.get_data3()); - + if (found_any) { min_point.set(min(min_point[0], vertex[0]), min(min_point[1], vertex[1]), @@ -1673,9 +1752,12 @@ calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, } else { while (!index.is_at_end()) { int ii = index.get_data1i(); + if (ii == strip_cut_index) { + continue; + } reader.set_row_unsafe(ii); const LVecBase3 &vertex = reader.get_data3(); - + if (found_any) { min_point.set(min(min_point[0], vertex[0]), min(min_point[1], vertex[1]), @@ -1797,63 +1879,77 @@ recompute_minmax(GeomPrimitive::CData *cdata) { cdata->_max_vertex = 0; cdata->_mins.clear(); cdata->_maxs.clear(); - + } else if (get_num_vertices_per_primitive() == 0) { // This is a complex primitive type like a triangle strip; compute // the minmax of each primitive (as well as the overall minmax). GeomVertexReader index(cdata->_vertices.get_read_pointer(), 0); - + cdata->_mins = make_index_data(); cdata->_maxs = make_index_data(); - + GeomVertexWriter mins(cdata->_mins.get_write_pointer(), 0); mins.reserve_num_rows(cdata->_ends.size()); GeomVertexWriter maxs(cdata->_maxs.get_write_pointer(), 0); maxs.reserve_num_rows(cdata->_ends.size()); - + int pi = 0; - + unsigned int vertex = index.get_data1i(); cdata->_min_vertex = vertex; cdata->_max_vertex = vertex; unsigned int min_prim = vertex; unsigned int max_prim = vertex; - + + int num_unused_vertices = get_num_unused_vertices_per_primitive(); + for (int vi = 1; vi < num_vertices; ++vi) { nassertv(!index.is_at_end()); - unsigned int vertex = index.get_data1i(); - cdata->_min_vertex = min(cdata->_min_vertex, vertex); - cdata->_max_vertex = max(cdata->_max_vertex, vertex); - nassertv(pi < (int)cdata->_ends.size()); + + unsigned int vertex; + if (vi == cdata->_ends[pi]) { + // Skip unused vertices, since they won't be very relevant and + // may contain a strip-cut index, which would distort the result. + if (num_unused_vertices > 0) { + vi += num_unused_vertices; + index.set_row_unsafe(vi); + } + vertex = index.get_data1i(); + mins.add_data1i(min_prim); maxs.add_data1i(max_prim); min_prim = vertex; max_prim = vertex; ++pi; - + } else { + vertex = index.get_data1i(); min_prim = min(min_prim, vertex); max_prim = max(max_prim, vertex); } + + cdata->_min_vertex = min(cdata->_min_vertex, vertex); + cdata->_max_vertex = max(cdata->_max_vertex, vertex); } + mins.add_data1i(min_prim); maxs.add_data1i(max_prim); nassertv(mins.get_array_data()->get_num_rows() == (int)cdata->_ends.size()); - + } else { // This is a simple primitive type like a triangle; just compute // the overall minmax. GeomVertexReader index(cdata->_vertices.get_read_pointer(), 0); - + cdata->_mins.clear(); cdata->_maxs.clear(); - + unsigned int vertex = index.get_data1i(); cdata->_min_vertex = vertex; cdata->_max_vertex = vertex; - + for (int vi = 1; vi < num_vertices; ++vi) { nassertv(!index.is_at_end()); unsigned int vertex = index.get_data1i(); @@ -1862,7 +1958,7 @@ recompute_minmax(GeomPrimitive::CData *cdata) { } } } - + cdata->_got_minmax = true; } @@ -1899,22 +1995,25 @@ do_make_indexed(CData *cdata) { //////////////////////////////////////////////////////////////////// void GeomPrimitive:: consider_elevate_index_type(CData *cdata, int vertex) { + // Note that we reserve the highest possible index of a particular + // index type (ie. -1) because this is commonly used as a strip-cut + // (also known as primitive restart) index. switch (cdata->_index_type) { case NT_uint8: - if (vertex > 0xff) { + if (vertex >= 0xff) { do_set_index_type(cdata, NT_uint16); } break; case NT_uint16: - if (vertex > 0xffff) { + if (vertex >= 0xffff) { do_set_index_type(cdata, NT_uint32); } break; case NT_uint32: // Not much we can do here. - nassertv(vertex <= 0x7fffffff); + nassertv(vertex < 0x7fffffff); break; default: @@ -1929,6 +2028,9 @@ consider_elevate_index_type(CData *cdata, int vertex) { //////////////////////////////////////////////////////////////////// void GeomPrimitive:: do_set_index_type(CData *cdata, GeomPrimitive::NumericType index_type) { + int old_strip_cut_index = get_strip_cut_index(cdata->_index_type); + int new_strip_cut_index = get_strip_cut_index(index_type); + cdata->_index_type = index_type; if (gobj_cat.is_debug()) { @@ -1938,7 +2040,7 @@ do_set_index_type(CData *cdata, GeomPrimitive::NumericType index_type) { if (!cdata->_vertices.is_null()) { CPT(GeomVertexArrayFormat) new_format = get_index_format(); - + CPT(GeomVertexArrayData) array_obj = cdata->_vertices.get_read_pointer(); if (array_obj->get_array_format() != new_format) { PT(GeomVertexArrayData) new_vertices = make_index_data(); @@ -1946,9 +2048,13 @@ do_set_index_type(CData *cdata, GeomPrimitive::NumericType index_type) { GeomVertexReader from(array_obj, 0); GeomVertexWriter to(new_vertices, 0); - + while (!from.is_at_end()) { - to.set_data1i(from.get_data1i()); + int index = from.get_data1i(); + if (index == old_strip_cut_index) { + index = new_strip_cut_index; + } + to.set_data1i(index); } cdata->_vertices = new_vertices; cdata->_got_minmax = false; @@ -2056,7 +2162,7 @@ int GeomPrimitive::CData:: complete_pointers(TypedWritable **p_list, BamReader *manager) { int pi = CycleData::complete_pointers(p_list, manager); - _vertices = DCAST(GeomVertexArrayData, p_list[pi++]); + _vertices = DCAST(GeomVertexArrayData, p_list[pi++]); if (manager->get_file_minor_ver() < 6 && !_vertices.is_null()) { // Older bam files might have a meaningless number in @@ -2106,7 +2212,7 @@ check_minmax() const { #ifdef DO_PIPELINING unref_delete((CycleData *)_cdata); #endif - GeomPrimitive::CDWriter fresh_cdata(((GeomPrimitive *)_object.p())->_cycler, + GeomPrimitive::CDWriter fresh_cdata(((GeomPrimitive *)_object.p())->_cycler, false, _current_thread); ((GeomPrimitivePipelineReader *)this)->_cdata = fresh_cdata; #ifdef DO_PIPELINING @@ -2132,7 +2238,7 @@ check_minmax() const { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitivePipelineReader::get_first_vertex // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// int GeomPrimitivePipelineReader:: get_first_vertex() const { @@ -2170,7 +2276,7 @@ get_vertex(int i) const { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitivePipelineReader::get_num_primitives // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// int GeomPrimitivePipelineReader:: get_num_primitives() const { diff --git a/panda/src/gobj/geomPrimitive.h b/panda/src/gobj/geomPrimitive.h index 18213be302..ef26ad4977 100644 --- a/panda/src/gobj/geomPrimitive.h +++ b/panda/src/gobj/geomPrimitive.h @@ -118,6 +118,7 @@ PUBLISHED: int get_primitive_start(int n) const; int get_primitive_end(int n) const; int get_primitive_num_vertices(int n) const; + int get_num_used_vertices() const; INLINE int get_num_faces() const; INLINE int get_primitive_num_faces(int n) const; @@ -163,6 +164,7 @@ PUBLISHED: void set_nonindexed_vertices(int first_vertex, int num_vertices); INLINE int get_index_stride() const; + INLINE int get_strip_cut_index() const; INLINE CPTA_int get_ends() const; PTA_int modify_ends(); @@ -194,6 +196,7 @@ public: private: void clear_prepared(PreparedGraphicsObjects *prepared_objects); static int get_highest_index_value(NumericType index_type); + static int get_strip_cut_index(NumericType index_type); public: virtual bool draw(GraphicsStateGuardianBase *gsg, @@ -358,6 +361,7 @@ public: INLINE int get_index_stride() const; INLINE const GeomVertexArrayDataHandle *get_vertices_reader() const; INLINE const unsigned char *get_read_pointer(bool force) const; + INLINE int get_strip_cut_index() const; INLINE CPTA_int get_ends() const; INLINE CPT(GeomVertexArrayData) get_mins() const; INLINE CPT(GeomVertexArrayData) get_maxs() const; diff --git a/panda/src/gobj/geomTristrips.cxx b/panda/src/gobj/geomTristrips.cxx index 3d141687c2..a8f20512d1 100644 --- a/panda/src/gobj/geomTristrips.cxx +++ b/panda/src/gobj/geomTristrips.cxx @@ -95,6 +95,17 @@ get_geom_rendering() const { } } +//////////////////////////////////////////////////////////////////// +// Function: GeomTristrips::get_min_num_vertices_per_primitive +// Access: Public, Virtual +// Description: Returns the minimum number of vertices that must be +// added before close_primitive() may legally be called. +//////////////////////////////////////////////////////////////////// +int GeomTristrips:: +get_min_num_vertices_per_primitive() const { + return 3; +} + //////////////////////////////////////////////////////////////////// // Function: GeomTristrips::get_num_unused_vertices_per_primitive // Access: Public, Virtual @@ -142,6 +153,7 @@ decompose_impl() const { CPTA_int ends = get_ends(); int num_vertices = get_num_vertices(); + int num_unused = get_num_unused_vertices_per_primitive(); // We need a slightly different algorithm for SM_flat_first_vertex // than for SM_flat_last_vertex, to preserve the key vertex in the @@ -150,11 +162,11 @@ decompose_impl() const { if (get_shade_model() == SM_flat_first_vertex) { // Preserve the first vertex of each component triangle as the // first vertex of each generated triangle. - int vi = -2; + int vi = -num_unused; int li = 0; while (li < (int)ends.size()) { // Skip unused vertices between tristrips. - vi += 2; + vi += num_unused; int end = ends[li]; nassertr(vi + 2 <= end, NULL); int v0 = get_vertex(vi); @@ -192,11 +204,11 @@ decompose_impl() const { } else { // Preserve the last vertex of each component triangle as the // last vertex of each generated triangle. - int vi = -2; + int vi = -num_unused; int li = 0; while (li < (int)ends.size()) { // Skip unused vertices between tristrips. - vi += 2; + vi += num_unused; int end = ends[li]; nassertr(vi + 2 <= end, NULL); int v0 = get_vertex(vi); diff --git a/panda/src/gobj/geomTristrips.h b/panda/src/gobj/geomTristrips.h index 2e0c8c4a71..387d72485b 100644 --- a/panda/src/gobj/geomTristrips.h +++ b/panda/src/gobj/geomTristrips.h @@ -33,6 +33,7 @@ public: virtual PT(GeomPrimitive) make_copy() const; virtual PrimitiveType get_primitive_type() const; virtual int get_geom_rendering() const; + virtual int get_min_num_vertices_per_primitive() const; virtual int get_num_unused_vertices_per_primitive() const; public: From bce1f2dd5a3d69cf1c0d3e1547953fa4703b9bf3 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 26 Sep 2014 15:17:14 +0000 Subject: [PATCH 08/27] Commit patch by Technologicat (closes LP #1214782) --- panda/src/pgraph/lightRampAttrib.cxx | 2 +- panda/src/pgraphnodes/shaderGenerator.cxx | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/panda/src/pgraph/lightRampAttrib.cxx b/panda/src/pgraph/lightRampAttrib.cxx index 32df6a0f4b..399754a69c 100644 --- a/panda/src/pgraph/lightRampAttrib.cxx +++ b/panda/src/pgraph/lightRampAttrib.cxx @@ -96,7 +96,7 @@ make_single_threshold(PN_stdfloat thresh0, PN_stdfloat val0) { CPT(RenderAttrib) LightRampAttrib:: make_double_threshold(PN_stdfloat thresh0, PN_stdfloat val0, PN_stdfloat thresh1, PN_stdfloat val1) { LightRampAttrib *attrib = new LightRampAttrib(); - attrib->_mode = LRT_single_threshold; + attrib->_mode = LRT_double_threshold; attrib->_threshold[0] = thresh0; attrib->_level[0] = val0; attrib->_threshold[1] = thresh1; diff --git a/panda/src/pgraphnodes/shaderGenerator.cxx b/panda/src/pgraphnodes/shaderGenerator.cxx index 47c8aed5b8..27a90640fe 100644 --- a/panda/src/pgraphnodes/shaderGenerator.cxx +++ b/panda/src/pgraphnodes/shaderGenerator.cxx @@ -1178,12 +1178,11 @@ synthesize_shader(const RenderState *rs) { PN_stdfloat t1 = light_ramp->get_threshold(1); PN_stdfloat l0 = light_ramp->get_level(0); PN_stdfloat l1 = light_ramp->get_level(1); - PN_stdfloat l2 = light_ramp->get_level(2); text << "\t // Double-threshold light ramp\n"; text << "\t float lr_in = dot(tot_diffuse.rgb, float3(0.33,0.34,0.33));\n"; - text << "\t float lr_out = " << l0 << "\n"; - text << "\t if (lr_in > " << t0 << ") lr_out=" << l1 << ";\n"; - text << "\t if (lr_in > " << t1 << ") lr_out=" << l2 << ";\n"; + text << "\t float lr_out = 0.0;\n"; + text << "\t if (lr_in > " << t0 << ") lr_out=" << l0 << ";\n"; + text << "\t if (lr_in > " << t1 << ") lr_out=" << l1 << ";\n"; text << "\t tot_diffuse = tot_diffuse * (lr_out / lr_in);\n"; break; } From 49138d87e41e5433be0e7ba7200062aa4eb15505 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 26 Sep 2014 19:14:10 +0000 Subject: [PATCH 09/27] better management of texcoord inputs --- direct/src/filter/CommonFilters.py | 62 +++++++++++++++++++----------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/direct/src/filter/CommonFilters.py b/direct/src/filter/CommonFilters.py index 3bfb715dcb..0e1e38b26e 100644 --- a/direct/src/filter/CommonFilters.py +++ b/direct/src/filter/CommonFilters.py @@ -125,7 +125,6 @@ class CommonFilters: self.task = None def reconfigure(self, fullrebuild, changed): - """ Reconfigure is called whenever any configuration change is made. """ configuration = self.configuration @@ -140,9 +139,13 @@ class CommonFilters: auxbits = 0 needtex = {} needtex["color"] = True + texcoords = ["l_texcoordC"] + if ("CartoonInk" in configuration): needtex["aux"] = True auxbits |= AuxBitplaneAttrib.ABOAuxNormal + texcoords.append("l_texcoordN") + if ("AmbientOcclusion" in configuration): needtex["depth"] = True needtex["ssao0"] = True @@ -150,19 +153,27 @@ class CommonFilters: needtex["ssao2"] = True needtex["aux"] = True auxbits |= AuxBitplaneAttrib.ABOAuxNormal + texcoords.append("l_texcoordAO") + if ("BlurSharpen" in configuration): needtex["blur0"] = True needtex["blur1"] = True + texcoords.append("l_texcoordBS") + if ("Bloom" in configuration): needtex["bloom0"] = True needtex["bloom1"] = True needtex["bloom2"] = True needtex["bloom3"] = True auxbits |= AuxBitplaneAttrib.ABOGlow + texcoords.append("l_texcoordB") + if ("ViewGlow" in configuration): auxbits |= AuxBitplaneAttrib.ABOGlow + if ("VolumetricLighting" in configuration): needtex[configuration["VolumetricLighting"].source] = True + for tex in needtex: self.textures[tex] = Texture("scene-"+tex) self.textures[tex].setWrapU(Texture.WMClamp) @@ -230,24 +241,27 @@ class CommonFilters: text = "//Cg\n" text += "void vshader(float4 vtx_position : POSITION,\n" - text += " out float4 l_position : POSITION,\n" - text += " uniform float4 texpad_txcolor,\n" - text += " uniform float4 texpix_txcolor,\n" - text += " out float4 l_texcoordC : TEXCOORD0,\n" + text += " out float4 l_position : POSITION,\n" + text += " uniform float4 texpad_txcolor,\n" + text += " uniform float4 texpix_txcolor,\n" + if ("CartoonInk" in configuration): - text += " uniform float4 texpad_txaux,\n" - text += " uniform float4 texpix_txaux,\n" - text += " out float4 l_texcoordN : TEXCOORD1,\n" + text += " uniform float4 texpad_txaux,\n" + text += " uniform float4 texpix_txaux,\n" + if ("Bloom" in configuration): - text += " uniform float4 texpad_txbloom3,\n" - text += " out float4 l_texcoordB : TEXCOORD2,\n" + text += " uniform float4 texpad_txbloom3,\n" + if ("BlurSharpen" in configuration): - text += " uniform float4 texpad_txblur1,\n" - text += " out float4 l_texcoordBS : TEXCOORD3,\n" + text += " uniform float4 texpad_txblur1,\n" + if ("AmbientOcclusion" in configuration): - text += " uniform float4 texpad_txssao2,\n" - text += " out float4 l_texcoordAO : TEXCOORD4,\n" - text += " uniform float4x4 mat_modelproj)\n" + text += " uniform float4 texpad_txssao2,\n" + + for i, name in enumerate(texcoords): + text += " out float4 %s : TEXCOORD%d,\n" % (name, i) + + text += " uniform float4x4 mat_modelproj)\n" text += "{\n" text += " l_position=mul(mat_modelproj, vtx_position);\n" text += " l_texcoordC=(vtx_position.xzxz * texpad_txcolor) + texpad_txcolor;\n" @@ -261,28 +275,30 @@ class CommonFilters: text += " l_texcoordAO=(vtx_position.xzxz * texpad_txssao2) + texpad_txssao2;\n" if ("HalfPixelShift" in configuration): text += " l_texcoordC+=texpix_txcolor*0.5;\n" - if ("CartoonInk" in configuration): + if ("l_texcoordN" in texcoords): text += " l_texcoordN+=texpix_txaux*0.5;\n" text += "}\n" + text += "void fshader(\n" - text += "float4 l_texcoordC : TEXCOORD0,\n" text += "uniform float4 texpix_txcolor,\n" + if ("CartoonInk" in configuration): - text += "float4 l_texcoordN : TEXCOORD1,\n" text += "uniform float4 texpix_txaux,\n" - if ("Bloom" in configuration): - text += "float4 l_texcoordB : TEXCOORD2,\n" + if ("BlurSharpen" in configuration): - text += "float4 l_texcoordBS : TEXCOORD3,\n" text += "uniform float4 k_blurval,\n" - if ("AmbientOcclusion" in configuration): - text += "float4 l_texcoordAO : TEXCOORD4,\n" + + for i, name in enumerate(texcoords): + text += " float4 %s : TEXCOORD%d,\n" % (name, i) + for key in self.textures: text += "uniform sampler2D k_tx" + key + ",\n" + if ("CartoonInk" in configuration): text += "uniform float4 k_cartoonseparation,\n" text += "uniform float4 k_cartooncolor,\n" + if ("VolumetricLighting" in configuration): text += "uniform float4 k_casterpos,\n" text += "uniform float4 k_vlparams,\n" From baaa5d7ffa3c03a81c73b9d530147a9cb3bbea8d Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 26 Sep 2014 23:57:14 +0000 Subject: [PATCH 10/27] Better handling of texture padding --- direct/src/filter/CommonFilters.py | 207 ++++++++++++++--------------- 1 file changed, 100 insertions(+), 107 deletions(-) diff --git a/direct/src/filter/CommonFilters.py b/direct/src/filter/CommonFilters.py index 0e1e38b26e..d3ed6f7b95 100644 --- a/direct/src/filter/CommonFilters.py +++ b/direct/src/filter/CommonFilters.py @@ -20,21 +20,17 @@ from pandac.PandaModules import Point3, Vec3, Vec4, Point2 from pandac.PandaModules import NodePath, PandaNode from pandac.PandaModules import Filename from pandac.PandaModules import AuxBitplaneAttrib -from pandac.PandaModules import RenderState, Texture, Shader +from pandac.PandaModules import RenderState, Texture, Shader, ATSNone import sys,os CARTOON_BODY=""" float4 cartoondelta = k_cartoonseparation * texpix_txaux.xwyw; -float4 cartoon_p0 = l_texcoordN + cartoondelta.xyzw; -float4 cartoon_c0 = tex2D(k_txaux, cartoon_p0.xy); -float4 cartoon_p1 = l_texcoordN - cartoondelta.xyzw; -float4 cartoon_c1 = tex2D(k_txaux, cartoon_p1.xy); -float4 cartoon_p2 = l_texcoordN + cartoondelta.wzyx; -float4 cartoon_c2 = tex2D(k_txaux, cartoon_p2.xy); -float4 cartoon_p3 = l_texcoordN - cartoondelta.wzyx; -float4 cartoon_c3 = tex2D(k_txaux, cartoon_p3.xy); -float4 cartoon_mx = max(cartoon_c0,max(cartoon_c1,max(cartoon_c2,cartoon_c3))); -float4 cartoon_mn = min(cartoon_c0,min(cartoon_c1,min(cartoon_c2,cartoon_c3))); +float4 cartoon_c0 = tex2D(k_txaux, %(texcoord)s + cartoondelta.xy); +float4 cartoon_c1 = tex2D(k_txaux, %(texcoord)s - cartoondelta.xy); +float4 cartoon_c2 = tex2D(k_txaux, %(texcoord)s + cartoondelta.wz); +float4 cartoon_c3 = tex2D(k_txaux, %(texcoord)s - cartoondelta.wz); +float4 cartoon_mx = max(cartoon_c0, max(cartoon_c1, max(cartoon_c2, cartoon_c3))); +float4 cartoon_mn = min(cartoon_c0, min(cartoon_c1, min(cartoon_c2, cartoon_c3))); float cartoon_thresh = saturate(dot(cartoon_mx - cartoon_mn, float4(3,3,0,0)) - 0.5); o_color = lerp(o_color, k_cartooncolor, cartoon_thresh); """ @@ -137,36 +133,35 @@ class CommonFilters: return auxbits = 0 - needtex = {} - needtex["color"] = True - texcoords = ["l_texcoordC"] + needtex = set(["color"]) + needtexcoord = set(["color"]) if ("CartoonInk" in configuration): - needtex["aux"] = True + needtex.add("aux") auxbits |= AuxBitplaneAttrib.ABOAuxNormal - texcoords.append("l_texcoordN") + needtexcoord.add("aux") if ("AmbientOcclusion" in configuration): - needtex["depth"] = True - needtex["ssao0"] = True - needtex["ssao1"] = True - needtex["ssao2"] = True - needtex["aux"] = True + needtex.add("depth") + needtex.add("ssao0") + needtex.add("ssao1") + needtex.add("ssao2") + needtex.add("aux") auxbits |= AuxBitplaneAttrib.ABOAuxNormal - texcoords.append("l_texcoordAO") + needtexcoord.add("ssao2") if ("BlurSharpen" in configuration): - needtex["blur0"] = True - needtex["blur1"] = True - texcoords.append("l_texcoordBS") + needtex.add("blur0") + needtex.add("blur1") + needtexcoord.add("blur1") if ("Bloom" in configuration): - needtex["bloom0"] = True - needtex["bloom1"] = True - needtex["bloom2"] = True - needtex["bloom3"] = True + needtex.add("bloom0") + needtex.add("bloom1") + needtex.add("bloom2") + needtex.add("bloom3") auxbits |= AuxBitplaneAttrib.ABOGlow - texcoords.append("l_texcoordB") + needtexcoord.add("bloom3") if ("ViewGlow" in configuration): auxbits |= AuxBitplaneAttrib.ABOGlow @@ -175,10 +170,9 @@ class CommonFilters: needtex[configuration["VolumetricLighting"].source] = True for tex in needtex: - self.textures[tex] = Texture("scene-"+tex) + self.textures[tex] = Texture("scene-" + tex) self.textures[tex].setWrapU(Texture.WMClamp) self.textures[tex].setWrapV(Texture.WMClamp) - needtexpix = True self.finalQuad = self.manager.renderSceneInto(textures = self.textures, auxbits=auxbits) if (self.finalQuad == None): @@ -239,101 +233,100 @@ class CommonFilters: self.bloom[3].setShaderInput("src", bloom2) self.bloom[3].setShader(self.loadShader("filter-bloomy.sha")) + texcoords = {} + texcoordPadding = {} + + for tex in needtexcoord: + if self.textures[tex].getAutoTextureScale() != ATSNone or \ + "HalfPixelShift" in configuration: + texcoords[tex] = "l_texcoord_" + tex + texcoordPadding["l_texcoord_" + tex] = tex + else: + # Share unpadded texture coordinates. + texcoords[tex] = "l_texcoord" + texcoordPadding["l_texcoord"] = None + + texcoordSets = list(enumerate(texcoordPadding.keys())) + text = "//Cg\n" text += "void vshader(float4 vtx_position : POSITION,\n" text += " out float4 l_position : POSITION,\n" - text += " uniform float4 texpad_txcolor,\n" - text += " uniform float4 texpix_txcolor,\n" - if ("CartoonInk" in configuration): - text += " uniform float4 texpad_txaux,\n" - text += " uniform float4 texpix_txaux,\n" + for texcoord, padTex in texcoordPadding.items(): + if padTex is not None: + text += " uniform float4 texpad_tx%s,\n" % (padTex) + if ("HalfPixelShift" in configuration): + text += " uniform float4 texpix_tx%s,\n" % (padTex) - if ("Bloom" in configuration): - text += " uniform float4 texpad_txbloom3,\n" - - if ("BlurSharpen" in configuration): - text += " uniform float4 texpad_txblur1,\n" - - if ("AmbientOcclusion" in configuration): - text += " uniform float4 texpad_txssao2,\n" - - for i, name in enumerate(texcoords): - text += " out float4 %s : TEXCOORD%d,\n" % (name, i) + for i, name in texcoordSets: + text += " out float2 %s : TEXCOORD%d,\n" % (name, i) text += " uniform float4x4 mat_modelproj)\n" text += "{\n" - text += " l_position=mul(mat_modelproj, vtx_position);\n" - text += " l_texcoordC=(vtx_position.xzxz * texpad_txcolor) + texpad_txcolor;\n" - if ("CartoonInk" in configuration): - text += " l_texcoordN=(vtx_position.xzxz * texpad_txaux) + texpad_txaux;\n" - if ("Bloom" in configuration): - text += " l_texcoordB=(vtx_position.xzxz * texpad_txbloom3) + texpad_txbloom3;\n" - if ("BlurSharpen" in configuration): - text += " l_texcoordBS=(vtx_position.xzxz * texpad_txblur1) + texpad_txblur1;\n" - if ("AmbientOcclusion" in configuration): - text += " l_texcoordAO=(vtx_position.xzxz * texpad_txssao2) + texpad_txssao2;\n" - if ("HalfPixelShift" in configuration): - text += " l_texcoordC+=texpix_txcolor*0.5;\n" - if ("l_texcoordN" in texcoords): - text += " l_texcoordN+=texpix_txaux*0.5;\n" + text += " l_position = mul(mat_modelproj, vtx_position);\n" + + for texcoord, padTex in texcoordPadding.items(): + if padTex is None: + text += " %s = vtx_position.xz * float2(0.5, 0.5) + float2(0.5, 0.5);\n" % (texcoord) + else: + text += " %s = (vtx_position.xz * texpad_tx%s.xy) + texpad_tx%s.xy;\n" % (texcoord, padTex, padTex) + + if ("HalfPixelShift" in configuration): + text += " %s += texpix_tx%s.xy * 0.5;\n" % (texcoord, padTex) + text += "}\n" - text += "void fshader(\n" - text += "uniform float4 texpix_txcolor,\n" - if ("CartoonInk" in configuration): - text += "uniform float4 texpix_txaux,\n" - - if ("BlurSharpen" in configuration): - text += "uniform float4 k_blurval,\n" - - for i, name in enumerate(texcoords): - text += " float4 %s : TEXCOORD%d,\n" % (name, i) + for i, name in texcoordSets: + text += " float2 %s : TEXCOORD%d,\n" % (name, i) for key in self.textures: - text += "uniform sampler2D k_tx" + key + ",\n" + text += " uniform sampler2D k_tx" + key + ",\n" if ("CartoonInk" in configuration): - text += "uniform float4 k_cartoonseparation,\n" - text += "uniform float4 k_cartooncolor,\n" + text += " uniform float4 k_cartoonseparation,\n" + text += " uniform float4 k_cartooncolor,\n" + text += " uniform float4 texpix_txaux,\n" - if ("VolumetricLighting" in configuration): - text += "uniform float4 k_casterpos,\n" - text += "uniform float4 k_vlparams,\n" - text += "out float4 o_color : COLOR)\n" - text += "{\n" - text += " o_color = tex2D(k_txcolor, l_texcoordC.xy);\n" - if ("CartoonInk" in configuration): - text += CARTOON_BODY - if ("AmbientOcclusion" in configuration): - text += "o_color *= tex2D(k_txssao2, l_texcoordAO.xy).r;\n" if ("BlurSharpen" in configuration): - text += " o_color = lerp(tex2D(k_txblur1, l_texcoordBS.xy), o_color, k_blurval.x);\n" - if ("Bloom" in configuration): - text += "o_color = saturate(o_color);\n"; - text += "float4 bloom = 0.5*tex2D(k_txbloom3, l_texcoordB.xy);\n" - text += "o_color = 1-((1-bloom)*(1-o_color));\n" - if ("ViewGlow" in configuration): - text += "o_color.r = o_color.a;\n" + text += " uniform float4 k_blurval,\n" + if ("VolumetricLighting" in configuration): - text += "float decay = 1.0f;\n" - text += "float2 curcoord = l_texcoordC.xy;\n" - text += "float2 lightdir = curcoord - k_casterpos.xy;\n" - text += "lightdir *= k_vlparams.x;\n" - text += "half4 sample = tex2D(k_txcolor, curcoord);\n" - text += "float3 vlcolor = sample.rgb * sample.a;\n" - text += "for (int i = 0; i < %s; i++) {\n" % (int(configuration["VolumetricLighting"].numsamples)) - text += " curcoord -= lightdir;\n" - text += " sample = tex2D(k_tx%s, curcoord);\n" % (configuration["VolumetricLighting"].source) - text += " sample *= sample.a * decay;//*weight\n" - text += " vlcolor += sample.rgb;\n" - text += " decay *= k_vlparams.y;\n" - text += "}\n" - text += "o_color += float4(vlcolor * k_vlparams.z, 1);\n" + text += " uniform float4 k_casterpos,\n" + text += " uniform float4 k_vlparams,\n" + text += " out float4 o_color : COLOR)\n" + text += "{\n" + text += " o_color = tex2D(k_txcolor, %s);\n" % (texcoords["color"]) + if ("CartoonInk" in configuration): + text += CARTOON_BODY % {"texcoord" : texcoords["aux"]} + if ("AmbientOcclusion" in configuration): + text += " o_color *= tex2D(k_txssao2, %s).r;\n" % (texcoords["ssao2"]) + if ("BlurSharpen" in configuration): + text += " o_color = lerp(tex2D(k_txblur1, %s), o_color, k_blurval.x);\n" % (texcoords["blur1"]) + if ("Bloom" in configuration): + text += " o_color = saturate(o_color);\n"; + text += " float4 bloom = 0.5 * tex2D(k_txbloom3, %s);\n" % (texcoords["bloom3"]) + text += " o_color = 1-((1-bloom)*(1-o_color));\n" + if ("ViewGlow" in configuration): + text += " o_color.r = o_color.a;\n" + if ("VolumetricLighting" in configuration): + text += " float decay = 1.0f;\n" + text += " float2 curcoord = %s;\n" % (texcoords["color"]) + text += " float2 lightdir = curcoord - k_casterpos.xy;\n" + text += " lightdir *= k_vlparams.x;\n" + text += " half4 sample = tex2D(k_txcolor, curcoord);\n" + text += " float3 vlcolor = sample.rgb * sample.a;\n" + text += " for (int i = 0; i < %s; i++) {\n" % (int(configuration["VolumetricLighting"].numsamples)) + text += " curcoord -= lightdir;\n" + text += " sample = tex2D(k_tx%s, curcoord);\n" % (configuration["VolumetricLighting"].source) + text += " sample *= sample.a * decay;//*weight\n" + text += " vlcolor += sample.rgb;\n" + text += " decay *= k_vlparams.y;\n" + text += " }\n" + text += " o_color += float4(vlcolor * k_vlparams.z, 1);\n" if ("Inverted" in configuration): - text += "o_color = float4(1, 1, 1, 1) - o_color;\n" + text += " o_color = float4(1, 1, 1, 1) - o_color;\n" text += "}\n" self.finalQuad.setShader(Shader.make(text)) From 24386cdc1eb78ef708fd060f69b673a7edd742ce Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 2 Oct 2014 18:28:06 +0000 Subject: [PATCH 11/27] Use a table to make InternalName::make more efficient for Python interned strings --- .../interfaceMakerPythonNative.cxx | 21 ++++- dtool/src/interrogate/typeManager.cxx | 47 ++++++++++- dtool/src/interrogate/typeManager.h | 2 + dtool/src/parser-inc/Python.h | 6 ++ dtool/src/pystub/pystub.cxx | 8 ++ makepanda/makepanda.py | 2 + panda/src/gobj/Sources.pp | 1 + panda/src/gobj/internalName.cxx | 4 + panda/src/gobj/internalName.h | 24 +++++- panda/src/gobj/internalName_ext.cxx | 82 +++++++++++++++++++ panda/src/gobj/internalName_ext.h | 44 ++++++++++ 11 files changed, 234 insertions(+), 7 deletions(-) create mode 100644 panda/src/gobj/internalName_ext.cxx create mode 100644 panda/src/gobj/internalName_ext.h diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 931eb6cc47..0a1f601c12 100755 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -2742,7 +2742,9 @@ int GetParnetDepth(CPPType *type) { } else if (TypeManager::is_wchar_pointer(type)) { } else if (TypeManager::is_pointer_to_PyObject(type)) { } else if (TypeManager::is_pointer_to_Py_buffer(type)) { - } else if (TypeManager::is_pointer(type) || TypeManager::is_reference(type) || TypeManager::is_struct(type)) { + } else if (TypeManager::is_pointer(type) || + TypeManager::is_reference(type) || + TypeManager::is_struct(type)) { ++answer; int deepest = 0; TypeIndex type_index = builder.get_type(TypeManager::unwrap(TypeManager::resolve_type(type)), false); @@ -3275,6 +3277,21 @@ write_function_instance(ostream &out, InterfaceMaker::Object *obj, only_pyobjects = false; ++num_params; + } else if (TypeManager::is_pointer_to_PyStringObject(type)) { + if (args_type == AT_single_arg) { + // This is a single-arg function, so there's no need + // to convert anything. + param_name = "arg"; + extra_param_check += " && PyString_Check(arg)"; + } else { + indent(out, indent_level) << "PyStringObject *" << param_name << ";\n"; + format_specifiers += "S"; + parameter_list += ", &" + param_name; + } + pexpr_string = param_name; + expected_params += "string"; + ++num_params; + } else if (TypeManager::is_pointer_to_PyObject(type)) { if (args_type == AT_single_arg) { // This is a single-arg function, so there's no need @@ -3604,7 +3621,7 @@ write_function_instance(ostream &out, InterfaceMaker::Object *obj, if (true) { indent(out, indent_level) << "if (PyErr_Occurred()) {\n"; - delete_return_value(out, indent_level, remap, return_expr); + delete_return_value(out, indent_level + 2, remap, return_expr); indent(out, indent_level) << " if (PyErr_ExceptionMatches(PyExc_TypeError)) {\n"; indent(out, indent_level) diff --git a/dtool/src/interrogate/typeManager.cxx b/dtool/src/interrogate/typeManager.cxx index 245724b6ef..9ae0903469 100644 --- a/dtool/src/interrogate/typeManager.cxx +++ b/dtool/src/interrogate/typeManager.cxx @@ -1199,8 +1199,52 @@ is_PyObject(CPPType *type) { return is_PyObject(type->as_const_type()->_wrapped_around); case CPPDeclaration::ST_extension: + case CPPDeclaration::ST_struct: return (type->get_local_name(&parser) == "PyObject" || - type->get_local_name(&parser) == "_object"); + type->get_local_name(&parser) == "PyTypeObject" || + type->get_local_name(&parser) == "PyStringObject" || + type->get_local_name(&parser) == "PyUnicodeObject" || + type->get_local_name(&parser) == "_object" || + type->get_local_name(&parser) == "_typeobject"); + + default: + return false; + } +} + +//////////////////////////////////////////////////////////////////// +// Function: TypeManager::is_pointer_to_PyStringObject +// Access: Public, Static +// Description: Returns true if the indicated type is PyStringObject *. +//////////////////////////////////////////////////////////////////// +bool TypeManager:: +is_pointer_to_PyStringObject(CPPType *type) { + switch (type->get_subtype()) { + case CPPDeclaration::ST_const: + return is_pointer_to_PyStringObject(type->as_const_type()->_wrapped_around); + + case CPPDeclaration::ST_pointer: + return is_PyStringObject(type->as_pointer_type()->_pointing_at); + + default: + return false; + } +} + +//////////////////////////////////////////////////////////////////// +// Function: TypeManager::is_PyStringObject +// Access: Public, Static +// Description: Returns true if the indicated type is PyStringObject. +//////////////////////////////////////////////////////////////////// +bool TypeManager:: +is_PyStringObject(CPPType *type) { + switch (type->get_subtype()) { + case CPPDeclaration::ST_const: + return is_PyStringObject(type->as_const_type()->_wrapped_around); + + case CPPDeclaration::ST_extension: + case CPPDeclaration::ST_struct: + return (type->get_local_name(&parser) == "PyStringObject"); default: return false; @@ -1238,6 +1282,7 @@ is_Py_buffer(CPPType *type) { return is_Py_buffer(type->as_const_type()->_wrapped_around); case CPPDeclaration::ST_extension: + case CPPDeclaration::ST_struct: return (type->get_local_name(&parser) == "Py_buffer"); default: diff --git a/dtool/src/interrogate/typeManager.h b/dtool/src/interrogate/typeManager.h index 9123da52ed..afe02fa812 100644 --- a/dtool/src/interrogate/typeManager.h +++ b/dtool/src/interrogate/typeManager.h @@ -94,6 +94,8 @@ public: static bool is_const_ref_to_pointer_to_base(CPPType *type); static bool is_pointer_to_PyObject(CPPType *type); static bool is_PyObject(CPPType *type); + static bool is_pointer_to_PyStringObject(CPPType *type); + static bool is_PyStringObject(CPPType *type); static bool is_pointer_to_Py_buffer(CPPType *type); static bool is_Py_buffer(CPPType *type); static bool involves_unpublished(CPPType *type); diff --git a/dtool/src/parser-inc/Python.h b/dtool/src/parser-inc/Python.h index a059adca2c..329c8ed5bd 100755 --- a/dtool/src/parser-inc/Python.h +++ b/dtool/src/parser-inc/Python.h @@ -23,6 +23,12 @@ struct _object; typedef _object PyObject; +struct _typeobject; +typedef _typeobject PyTypeObject; + +struct PyStringObject; +struct PyUnicodeObject; + class PyThreadState; typedef int Py_ssize_t; struct Py_buffer; diff --git a/dtool/src/pystub/pystub.cxx b/dtool/src/pystub/pystub.cxx index 5fde787a8c..1553819636 100644 --- a/dtool/src/pystub/pystub.cxx +++ b/dtool/src/pystub/pystub.cxx @@ -121,6 +121,8 @@ extern "C" { EXPCL_PYSTUB int PyString_AsStringAndSize(...); EXPCL_PYSTUB int PyString_FromString(...); EXPCL_PYSTUB int PyString_FromStringAndSize(...); + EXPCL_PYSTUB int PyString_InternFromString(...); + EXPCL_PYSTUB int PyString_InternInPlace(...); EXPCL_PYSTUB int PyString_Size(...); EXPCL_PYSTUB int PyString_Type(...); EXPCL_PYSTUB int PySys_GetObject(...); @@ -152,6 +154,8 @@ extern "C" { EXPCL_PYSTUB int PyUnicode_FromStringAndSize(...); EXPCL_PYSTUB int PyUnicode_FromWideChar(...); EXPCL_PYSTUB int PyUnicode_GetSize(...); + EXPCL_PYSTUB int PyUnicode_InternFromString(...); + EXPCL_PYSTUB int PyUnicode_InternInPlace(...); EXPCL_PYSTUB int PyUnicode_Type(...); EXPCL_PYSTUB int Py_BuildValue(...); EXPCL_PYSTUB int Py_InitModule4(...); @@ -296,6 +300,8 @@ int PyString_AsString(...) { return 0; } int PyString_AsStringAndSize(...) { return 0; } int PyString_FromString(...) { return 0; } int PyString_FromStringAndSize(...) { return 0; } +int PyString_InternFromString(...) { return 0; } +int PyString_InternInPlace(...) { return 0; } int PyString_Size(...) { return 0; } int PyString_Type(...) { return 0; } int PySys_GetObject(...) { return 0; } @@ -327,6 +333,8 @@ int PyUnicode_FromString(...) { return 0; } int PyUnicode_FromStringAndSize(...) { return 0; } int PyUnicode_FromWideChar(...) { return 0; } int PyUnicode_GetSize(...) { return 0; } +int PyUnicode_InternFromString(...) { return 0; } +int PyUnicode_InternInPlace(...) { return 0; } int PyUnicode_Type(...) { return 0; } int Py_BuildValue(...) { return 0; } int Py_InitModule4(...) { return 0; } diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index c66a5670d1..0e654c2e7f 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -3168,6 +3168,7 @@ if (not RUNTIME): TargetAdd('libp3gobj.in', opts=['IMOD:panda3d.core', 'ILIB:libp3gobj', 'SRCDIR:panda/src/gobj']) TargetAdd('libp3gobj_igate.obj', input='libp3gobj.in', opts=["DEPENDENCYONLY"]) TargetAdd('p3gobj_geomVertexArrayData_ext.obj', opts=OPTS, input='geomVertexArrayData_ext.cxx') + TargetAdd('p3gobj_internalName_ext.obj', opts=OPTS, input='internalName_ext.cxx') # # DIRECTORY: panda/src/pgraphnodes/ @@ -3539,6 +3540,7 @@ if (not RUNTIME): TargetAdd('libpanda.dll', input='p3putil_typedWritable_ext.obj') TargetAdd('libpanda.dll', input='p3pnmimage_pfmFile_ext.obj') TargetAdd('libpanda.dll', input='p3gobj_geomVertexArrayData_ext.obj') + TargetAdd('libpanda.dll', input='p3gobj_internalName_ext.obj') TargetAdd('libpanda.dll', input='p3pgraph_ext_composite.obj') TargetAdd('libpanda.dll', input='p3display_graphicsStateGuardian_ext.obj') diff --git a/panda/src/gobj/Sources.pp b/panda/src/gobj/Sources.pp index a79670dd6d..8b71bfac5a 100644 --- a/panda/src/gobj/Sources.pp +++ b/panda/src/gobj/Sources.pp @@ -43,6 +43,7 @@ geomVertexWriter.h geomVertexWriter.I \ indexBufferContext.I indexBufferContext.h \ internalName.I internalName.h \ + internalName_ext.h internalName_ext.cxx \ lens.h lens.I \ material.I material.h materialPool.I materialPool.h \ matrixLens.I matrixLens.h \ diff --git a/panda/src/gobj/internalName.cxx b/panda/src/gobj/internalName.cxx index 8ee046338f..856fdcd403 100644 --- a/panda/src/gobj/internalName.cxx +++ b/panda/src/gobj/internalName.cxx @@ -43,6 +43,10 @@ PT(InternalName) InternalName::_view; TypeHandle InternalName::_type_handle; TypeHandle InternalName::_texcoord_type_handle; +#ifdef HAVE_PYTHON +InternalName::PyInternTable InternalName::_py_intern_table; +#endif + //////////////////////////////////////////////////////////////////// // Function: InternalName::Constructor // Access: Private diff --git a/panda/src/gobj/internalName.h b/panda/src/gobj/internalName.h index 7c3c42e259..82c570dcbb 100644 --- a/panda/src/gobj/internalName.h +++ b/panda/src/gobj/internalName.h @@ -43,11 +43,13 @@ class EXPCL_PANDA_GOBJ InternalName : public TypedWritableReferenceCount { private: InternalName(InternalName *parent, const string &basename); +public: + INLINE static PT(InternalName) make(const string &name); + PUBLISHED: virtual ~InternalName(); virtual bool unref() const; - INLINE static PT(InternalName) make(const string &name); static PT(InternalName) make(const string &name, int index); PT(InternalName) append(const string &basename); @@ -88,6 +90,22 @@ PUBLISHED: INLINE static PT(InternalName) get_model(); INLINE static PT(InternalName) get_view(); +#ifdef HAVE_PYTHON +#if PY_MAJOR_VERSION >= 3 + EXTENSION(static PT(InternalName) make(PyUnicodeObject *str)); +#else + EXTENSION(static PT(InternalName) make(PyStringObject *str)); +#endif +#endif + +public: +#ifdef HAVE_PYTHON + // It's OK for us to define it here since these are just pointers of + // which the reference is maintained indefinitely. + typedef phash_map PyInternTable; + static PyInternTable _py_intern_table; +#endif + private: PT(InternalName) _parent; string _basename; @@ -116,7 +134,7 @@ private: static PT(InternalName) _camera; static PT(InternalName) _model; static PT(InternalName) _view; - + public: // Datagram stuff static void register_with_read_factory(); @@ -157,5 +175,3 @@ INLINE ostream &operator << (ostream &out, const InternalName &tcn); #endif - - diff --git a/panda/src/gobj/internalName_ext.cxx b/panda/src/gobj/internalName_ext.cxx new file mode 100644 index 0000000000..99bee102a9 --- /dev/null +++ b/panda/src/gobj/internalName_ext.cxx @@ -0,0 +1,82 @@ +// Filename: internalName_ext.I +// Created by: rdb (28Sep14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#include "internalName_ext.h" + +#ifdef HAVE_PYTHON + +//////////////////////////////////////////////////////////////////// +// Function: InternalName::make +// Access: Published, Static +// Description: This extension method serves to allow coercion of +// Python interned strings to InternalName objects +// more efficiently by storing a mapping between +// Python and Panda interned strings. +//////////////////////////////////////////////////////////////////// +#if PY_MAJOR_VERSION >= 3 +PT(InternalName) Extension:: +make(PyUnicodeObject *str) { + if (!PyUnicode_CHECK_INTERNED(str)) { + // Not an interned string; don't bother. + Py_ssize_t len = 0; + char *c_str = PyUnicode_AsUTF8AndSize(str, &len); + return InternalName::make(name); + } + + InternalName::PyInternTable::const_iterator it; + it = InternalName::_py_intern_table.find((PyObject*)str); + + if (it != InternalName::_py_intern_table.end()) { + return (*it).second; + + } else { + Py_ssize_t len = 0; + char *c_str = PyUnicode_AsUTF8AndSize(str, &len); + string name(c_str, len); + +#else +PT(InternalName) Extension:: +make(PyStringObject *str) { + if (!PyString_CHECK_INTERNED(str)) { + // Not an interned string; don't bother. + string name(PyString_AS_STRING(str), PyString_GET_SIZE(str)); + return InternalName::make(name); + } + + InternalName::PyInternTable::const_iterator it; + it = InternalName::_py_intern_table.find((PyObject*)str); + + if (it != InternalName::_py_intern_table.end()) { + return (*it).second; + + } else { + string name(PyString_AS_STRING(str), PyString_GET_SIZE(str)); + +#endif // PY_MAJOR_VERSION + + PT(InternalName) iname = InternalName::make(name); + + // We basically leak references to both the PyObject and the + // InternalName. We may want to change that in the future if it + // becomes a problem. + Py_INCREF(str); + iname->ref(); + + InternalName::_py_intern_table.insert(make_pair((PyObject *)str, iname.p())); + return iname.p(); + } + +} + +#endif // HAVE_PYTHON diff --git a/panda/src/gobj/internalName_ext.h b/panda/src/gobj/internalName_ext.h new file mode 100644 index 0000000000..83b1510428 --- /dev/null +++ b/panda/src/gobj/internalName_ext.h @@ -0,0 +1,44 @@ +// Filename: internalName_ext.h +// Created by: rdb (28Sep14) +// +//////////////////////////////////////////////////////////////////// +// +// PANDA 3D SOFTWARE +// Copyright (c) Carnegie Mellon University. All rights reserved. +// +// All use of this software is subject to the terms of the revised BSD +// license. You should have received a copy of this license along +// with this source code in a file named "LICENSE." +// +//////////////////////////////////////////////////////////////////// + +#ifndef INTERNALNAME_EXT_H +#define INTERNALNAME_EXT_H + +#include "dtoolbase.h" + +#ifdef HAVE_PYTHON + +#include "extension.h" +#include "internalName.h" +#include "py_panda.h" + +//////////////////////////////////////////////////////////////////// +// Class : Extension +// Description : This class defines the extension methods for +// InternalName, which are called instead of +// any C++ methods with the same prototype. +//////////////////////////////////////////////////////////////////// +template<> +class Extension : public ExtensionBase { +public: +#if PY_MAJOR_VERSION >= 3 + static PT(InternalName) make(PyUnicodeObject *str); +#else + static PT(InternalName) make(PyStringObject *str); +#endif +}; + +#endif // HAVE_PYTHON + +#endif // INTERNALNAME_EXT_H From e7c08ec2fea6ca3aa01453b459c2e7aa3d41d509 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 3 Oct 2014 12:21:59 +0000 Subject: [PATCH 12/27] Fix some errors with shader object labels --- panda/src/gobj/shader.I | 12 ++++++------ panda/src/gobj/shader.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/panda/src/gobj/shader.I b/panda/src/gobj/shader.I index 9a84d9b6ef..3c0d2c9db9 100755 --- a/panda/src/gobj/shader.I +++ b/panda/src/gobj/shader.I @@ -12,16 +12,16 @@ // //////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////// // Function: Shader::get_filename -// Access: Public +// Access: Published // Description: Return the Shader's filename for the given shader // type. //////////////////////////////////////////////////////////////////// -INLINE const Filename Shader:: +INLINE Filename Shader:: get_filename(const ShaderType &type) const { - if (_filename->_separate) { - nassertr(type != ST_none || !_filename->_shared.empty(), ""); + if (_filename->_separate && type == ST_none) { switch (type) { case ST_vertex: return _filename->_vertex; @@ -51,7 +51,7 @@ get_filename(const ShaderType &type) const { //////////////////////////////////////////////////////////////////// // Function: Shader::get_text -// Access: Public +// Access: Published // Description: Return the Shader's text for the given shader type. //////////////////////////////////////////////////////////////////// INLINE const string &Shader:: @@ -146,7 +146,7 @@ have_shader_utilization() { // Description: Returns the shader language in which this shader // was written. //////////////////////////////////////////////////////////////////// -INLINE const Shader::ShaderLanguage Shader:: +INLINE Shader::ShaderLanguage Shader:: get_language() const { return _language; } diff --git a/panda/src/gobj/shader.h b/panda/src/gobj/shader.h index cc0f2208b0..726a322269 100755 --- a/panda/src/gobj/shader.h +++ b/panda/src/gobj/shader.h @@ -94,10 +94,10 @@ PUBLISHED: const string &tess_evaluation = ""); static PT(Shader) make_compute(const ShaderLanguage &lang, const string &body); - INLINE const Filename get_filename(const ShaderType &type = ST_none) const; + INLINE Filename get_filename(const ShaderType &type = ST_none) const; INLINE const string &get_text(const ShaderType &type = ST_none) const; INLINE const bool get_error_flag() const; - INLINE const ShaderLanguage get_language() const; + INLINE ShaderLanguage get_language() const; INLINE static ShaderUtilization get_shader_utilization(); INLINE static void set_shader_utilization(ShaderUtilization utl); From e5b3d58f77e554cbcc11bdfe25741c2e85c95360 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 3 Oct 2014 16:58:46 +0000 Subject: [PATCH 13/27] Add gamma adjustment filter --- direct/src/filter/CommonFilters.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/direct/src/filter/CommonFilters.py b/direct/src/filter/CommonFilters.py index d3ed6f7b95..2d05e74fb5 100644 --- a/direct/src/filter/CommonFilters.py +++ b/direct/src/filter/CommonFilters.py @@ -325,9 +325,20 @@ class CommonFilters: text += " decay *= k_vlparams.y;\n" text += " }\n" text += " o_color += float4(vlcolor * k_vlparams.z, 1);\n" + + if ("GammaAdjust" in configuration): + gamma = configuration["GammaAdjust"] + if gamma == 0.5: + text += " o_color.rgb = sqrt(o_color.rgb);\n" + elif gamma == 2.0: + text += " o_color.rgb *= o_color.rgb;\n" + elif gamma != 1.0: + text += " o_color.rgb = pow(o_color.rgb, %ff);\n" % (gamma) + if ("Inverted" in configuration): text += " o_color = float4(1, 1, 1, 1) - o_color;\n" text += "}\n" + print text self.finalQuad.setShader(Shader.make(text)) for tex in self.textures: @@ -513,3 +524,17 @@ class CommonFilters: return self.reconfigure(True, "AmbientOcclusion") return True + def setGammaAdjust(self, gamma): + """ Applies additional gamma correction to the image. 1.0 = no correction. """ + old_gamma = self.configuration.get("GammaAdjust", 1.0) + if old_gamma != gamma: + self.configuration["GammaAdjust"] = gamma + return self.reconfigure(True, "GammaAdjust") + return True + + def delGammaAdjust(self): + if ("GammaAdjust" in self.configuration): + old_gamma = self.configuration["GammaAdjust"] + del self.configuration["GammaAdjust"] + return self.reconfigure((old_gamma != 1.0), "GammaAdjust") + return True From 0a84dd9ca3e41ce5069073e8557312468d376c55 Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 6 Oct 2014 17:44:58 +0000 Subject: [PATCH 14/27] Android fixes --- dtool/src/dtoolbase/cmath.I | 8 - dtool/src/parser-inc/android/asset_manager.h | 2 + dtool/src/parser-inc/jni.h | 39 ++++ makepanda/makepanda.py | 61 +++--- makepanda/makepandacore.py | 189 +++++++++++------- .../express/virtualFileMountAndroidAsset.I | 2 +- panda/src/net/connectionManager.cxx | 9 +- 7 files changed, 201 insertions(+), 109 deletions(-) create mode 100644 dtool/src/parser-inc/android/asset_manager.h create mode 100644 dtool/src/parser-inc/jni.h diff --git a/dtool/src/dtoolbase/cmath.I b/dtool/src/dtoolbase/cmath.I index b731b19b77..194e6d24cf 100644 --- a/dtool/src/dtoolbase/cmath.I +++ b/dtool/src/dtoolbase/cmath.I @@ -390,11 +390,7 @@ cinf(double v) { //////////////////////////////////////////////////////////////////// INLINE float make_nan(float) { -#ifndef _WIN32 - return nanf(""); -#else return std::numeric_limits::quiet_NaN(); -#endif } //////////////////////////////////////////////////////////////////// @@ -403,11 +399,7 @@ make_nan(float) { //////////////////////////////////////////////////////////////////// INLINE double make_nan(double) { -#ifndef _WIN32 - return nan(""); -#else return std::numeric_limits::quiet_NaN(); -#endif } //////////////////////////////////////////////////////////////////// diff --git a/dtool/src/parser-inc/android/asset_manager.h b/dtool/src/parser-inc/android/asset_manager.h new file mode 100644 index 0000000000..2ca2fa4321 --- /dev/null +++ b/dtool/src/parser-inc/android/asset_manager.h @@ -0,0 +1,2 @@ +struct AAssetManager; +struct AAsset; diff --git a/dtool/src/parser-inc/jni.h b/dtool/src/parser-inc/jni.h new file mode 100644 index 0000000000..0015f96b40 --- /dev/null +++ b/dtool/src/parser-inc/jni.h @@ -0,0 +1,39 @@ +typedef unsigned char jboolean; /* unsigned 8 bits */ +typedef signed char jbyte; /* signed 8 bits */ +typedef unsigned short jchar; /* unsigned 16 bits */ +typedef short jshort; /* signed 16 bits */ +typedef int jint; /* signed 32 bits */ +typedef long long jlong; /* signed 64 bits */ +typedef float jfloat; /* 32-bit IEEE 754 */ +typedef double jdouble; /* 64-bit IEEE 754 */ + +typedef jint jsize; + +typedef void* jobject; +typedef jobject jclass; +typedef jobject jstring; +typedef jobject jarray; +typedef jarray jobjectArray; +typedef jarray jbooleanArray; +typedef jarray jbyteArray; +typedef jarray jcharArray; +typedef jarray jshortArray; +typedef jarray jintArray; +typedef jarray jlongArray; +typedef jarray jfloatArray; +typedef jarray jdoubleArray; +typedef jobject jthrowable; +typedef jobject jweak; + +struct _jfieldID; /* opaque structure */ +typedef struct _jfieldID* jfieldID; /* field IDs */ + +struct _jmethodID; /* opaque structure */ +typedef struct _jmethodID* jmethodID; /* method IDs */ + +struct JNIInvokeInterface; + +struct _JNIEnv; +struct _JavaVM; +typedef _JNIEnv JNIEnv; +typedef _JavaVM JavaVM; diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 0e654c2e7f..0f04977981 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -663,21 +663,6 @@ if (COMPILER=="GCC"): IncDirectory("ALWAYS", "/usr/local/include") LibDirectory("ALWAYS", "/usr/local/lib") - if GetHost() != "darwin": - # Workaround for an issue where pkg-config does not include this path - if GetTargetArch() in ("x86_64", "amd64"): - if (os.path.isdir("/usr/lib64/glib-2.0/include")): - IncDirectory("GTK2", "/usr/lib64/glib-2.0/include") - if (os.path.isdir("/usr/lib64/gtk-2.0/include")): - IncDirectory("GTK2", "/usr/lib64/gtk-2.0/include") - - if (os.path.isdir("/usr/X11R6/lib64")): - LibDirectory("ALWAYS", "/usr/X11R6/lib64") - else: - LibDirectory("ALWAYS", "/usr/X11R6/lib") - else: - LibDirectory("ALWAYS", "/usr/X11R6/lib") - fcollada_libs = ("FColladaD", "FColladaSD", "FColladaS") # WARNING! The order of the ffmpeg libraries matters! ffmpeg_libs = ("libavformat", "libavcodec", "libavutil") @@ -752,6 +737,22 @@ if (COMPILER=="GCC"): SmartPkgEnable("XF86DGA", "xxf86dga", "Xxf86dga", "X11/extensions/xf86dga.h") SmartPkgEnable("XCURSOR", "xcursor", "Xcursor", "X11/Xcursor/Xcursor.h") + if GetHost() != "darwin": + # Workaround for an issue where pkg-config does not include this path + if GetTargetArch() in ("x86_64", "amd64"): + if (os.path.isdir("/usr/lib64/glib-2.0/include")): + IncDirectory("GTK2", "/usr/lib64/glib-2.0/include") + if (os.path.isdir("/usr/lib64/gtk-2.0/include")): + IncDirectory("GTK2", "/usr/lib64/gtk-2.0/include") + + if not PkgSkip("X11"): + if (os.path.isdir("/usr/X11R6/lib64")): + LibDirectory("ALWAYS", "/usr/X11R6/lib64") + else: + LibDirectory("ALWAYS", "/usr/X11R6/lib") + elif not PkgSkip("X11"): + LibDirectory("ALWAYS", "/usr/X11R6/lib") + if (RUNTIME): # For the runtime, all packages are required for pkg in ["OPENSSL", "ZLIB", "NPAPI", "JPEG", "PNG"]: @@ -1046,7 +1047,7 @@ def CompileCxx(obj,src,opts): if (COMPILER=="GCC"): if (src.endswith(".c")): cmd = GetCC() +' -fPIC -c -o ' + obj - else: cmd = GetCXX()+' -ftemplate-depth-30 -fPIC -c -o ' + obj + else: cmd = GetCXX()+' -ftemplate-depth-50 -fPIC -c -o ' + obj for (opt, dir) in INCDIRECTORIES: if (opt=="ALWAYS") or (opt in opts): cmd += ' -I' + BracketNameWithQuotes(dir) for (opt,var,val) in DEFSYMBOLS: @@ -1070,9 +1071,12 @@ def CompileCxx(obj,src,opts): cmd += ' --sysroot=%s -no-canonical-prefixes' % (SDK["SYSROOT"]) # Android-specific flags. + arch = GetTargetArch() + if GetTarget() == "android": + cmd += ' -I%s/include' % (SDK["ANDROID_STL"]) + cmd += ' -I%s/libs/%s/include' % (SDK["ANDROID_STL"], SDK["ANDROID_ABI"]) cmd += ' -ffunction-sections -funwind-tables' - arch = GetTargetArch() if arch == 'armv7a': cmd += ' -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__' cmd += ' -fstack-protector -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16' @@ -1111,7 +1115,7 @@ def CompileCxx(obj,src,opts): else: cmd += " -pthread" - if PkgSkip("SSE2") == 0: + if PkgSkip("SSE2") == 0 and not arch.startswith("arm"): cmd += " -msse2" if (optlevel==1): cmd += " -ggdb -D_DEBUG" @@ -1217,7 +1221,7 @@ def CompileIgate(woutd,wsrc,opts): # NOTE: this 1600 value is the version number for VC2010. cmd += ' -D_MSC_VER=1600 -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall' if (COMPILER=="GCC"): - cmd += ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -D__const=const' + cmd += ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -D__const=const -D__attribute__\(x\)=' if GetTargetArch() in ("x86_64", "amd64"): cmd += ' -D_LP64' else: @@ -1495,7 +1499,7 @@ def CompileLink(dll, obj, opts): # Android-specific flags. if GetTarget() == 'android': - cmd += " -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now" + cmd += " -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now" if GetTargetArch() == 'armv7a': cmd += " -march=armv7-a -Wl,--fix-cortex-a8" cmd += ' -lc -lm' @@ -3827,16 +3831,15 @@ if (PkgSkip("OPENSSL")==0 and not RTDIST and not RUNTIME and PkgSkip("DEPLOYTOOL TargetAdd('build_patch.exe', input=COMMON_PANDA_LIBS_PYSTUB) TargetAdd('build_patch.exe', opts=OPTS) - if not PkgSkip("ZLIB"): - TargetAdd('check_adler_check_adler.obj', opts=OPTS, input='check_adler.cxx') - TargetAdd('check_adler.exe', input=['check_adler_check_adler.obj']) - TargetAdd('check_adler.exe', input=COMMON_PANDA_LIBS_PYSTUB) - TargetAdd('check_adler.exe', opts=OPTS) + TargetAdd('check_adler_check_adler.obj', opts=OPTS, input='check_adler.cxx') + TargetAdd('check_adler.exe', input=['check_adler_check_adler.obj']) + TargetAdd('check_adler.exe', input=COMMON_PANDA_LIBS_PYSTUB) + TargetAdd('check_adler.exe', opts=OPTS) - TargetAdd('check_crc_check_crc.obj', opts=OPTS, input='check_crc.cxx') - TargetAdd('check_crc.exe', input=['check_crc_check_crc.obj']) - TargetAdd('check_crc.exe', input=COMMON_PANDA_LIBS_PYSTUB) - TargetAdd('check_crc.exe', opts=OPTS) + TargetAdd('check_crc_check_crc.obj', opts=OPTS, input='check_crc.cxx') + TargetAdd('check_crc.exe', input=['check_crc_check_crc.obj']) + TargetAdd('check_crc.exe', input=COMMON_PANDA_LIBS_PYSTUB) + TargetAdd('check_crc.exe', opts=OPTS) TargetAdd('check_md5_check_md5.obj', opts=OPTS, input='check_md5.cxx') TargetAdd('check_md5.exe', input=['check_md5_check_md5.obj']) diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index cdd8684017..d913017317 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -37,6 +37,7 @@ HAS_TARGET_ARCH = False TOOLCHAIN_PREFIX = "" ANDROID_ABI = None SYS_LIB_DIRS = [] +DEBUG_DEPENDENCIES = False # Is the current Python a 32-bit or 64-bit build? There doesn't # appear to be a universal test for this. @@ -652,7 +653,10 @@ def NeedsBuild(files, others): for file in files: dates[file] = GetTimestamp(file) if not os.path.exists(file): + if DEBUG_DEPENDENCIES: + print("rebuilding %s because it does not exist" % (file)) return True + for file in others: dates[file] = GetTimestamp(file) @@ -661,6 +665,16 @@ def NeedsBuild(files, others): cached = BUILTFROMCACHE[key] if cached == dates: return False + elif DEBUG_DEPENDENCIES: + print("rebuilding %s because:" % (key)) + for key in frozenset(cached.keys()) | frozenset(dates.keys()): + if key not in cached: + print(" new dependency: %s" % (key)) + elif key not in dates: + print(" removed dependency: %s" % (key)) + elif cached[key] != dates[key]: + print(" dependency changed: %s" % (key)) + if VERBOSE and frozenset(cached) != frozenset(dates): print("%sWARNING:%s file dependencies changed: %s%s%s" % (GetColor("red"), GetColor(), GetColor("green"), files, GetColor())) @@ -1181,40 +1195,44 @@ def GetThirdpartyDir(): ######################################################################## def GetOutputDir(): - return OUTPUTDIR + return OUTPUTDIR def IsCustomOutputDir(): - return CUSTOM_OUTPUTDIR + return CUSTOM_OUTPUTDIR def SetOutputDir(outputdir): - global OUTPUTDIR, CUSTOM_OUTPUTDIR - OUTPUTDIR=outputdir - CUSTOM_OUTPUTDIR=True + global OUTPUTDIR, CUSTOM_OUTPUTDIR + OUTPUTDIR = outputdir + CUSTOM_OUTPUTDIR = True def GetOptimize(): - return int(OPTIMIZE) + return int(OPTIMIZE) def SetOptimize(optimize): - global OPTIMIZE - OPTIMIZE=optimize + global OPTIMIZE + OPTIMIZE = optimize def GetVerbose(): - return VERBOSE + return VERBOSE def SetVerbose(verbose): - global VERBOSE - VERBOSE=verbose + global VERBOSE + VERBOSE = verbose + +def SetDebugDependencies(dd = True): + global DEBUG_DEPENDENCIES + DEBUG_DEPENDENCIES = dd def GetLinkAllStatic(): - return LINK_ALL_STATIC + return LINK_ALL_STATIC def SetLinkAllStatic(val = True): - global LINK_ALL_STATIC - LINK_ALL_STATIC = val + global LINK_ALL_STATIC + LINK_ALL_STATIC = val def UnsetLinkAllStatic(): - global LINK_ALL_STATIC - LINK_ALL_STATIC = False + global LINK_ALL_STATIC + LINK_ALL_STATIC = False ######################################################################## ## @@ -1292,7 +1310,7 @@ def OverrideValue(parameter, value): def PkgConfigHavePkg(pkgname, tool = "pkg-config"): """Returns a bool whether the pkg-config package is installed.""" - if (sys.platform == "win32" or not LocateBinary(tool)): + if (sys.platform == "win32" or CrossCompiling() or not LocateBinary(tool)): return False if (tool == "pkg-config"): handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --modversion " + pkgname) @@ -1307,7 +1325,7 @@ def PkgConfigHavePkg(pkgname, tool = "pkg-config"): def PkgConfigGetLibs(pkgname, tool = "pkg-config"): """Returns a list of libs for the package, prefixed by -l.""" - if (sys.platform == "win32" or not LocateBinary(tool)): + if (sys.platform == "win32" or CrossCompiling() or not LocateBinary(tool)): return [] if (tool == "pkg-config"): handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --libs-only-l " + pkgname) @@ -1338,7 +1356,7 @@ def PkgConfigGetLibs(pkgname, tool = "pkg-config"): def PkgConfigGetIncDirs(pkgname, tool = "pkg-config"): """Returns a list of includes for the package, NOT prefixed by -I.""" - if (sys.platform == "win32" or not LocateBinary(tool)): + if (sys.platform == "win32" or CrossCompiling() or not LocateBinary(tool)): return [] if (tool == "pkg-config"): handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --cflags-only-I " + pkgname) @@ -1359,7 +1377,7 @@ def PkgConfigGetIncDirs(pkgname, tool = "pkg-config"): def PkgConfigGetLibDirs(pkgname, tool = "pkg-config"): """Returns a list of library paths for the package, NOT prefixed by -L.""" - if (sys.platform == "win32" or not LocateBinary(tool)): + if (sys.platform == "win32" or CrossCompiling() or not LocateBinary(tool)): return [] if (tool == "pkg-config"): handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --libs-only-L " + pkgname) @@ -1379,7 +1397,7 @@ def PkgConfigGetLibDirs(pkgname, tool = "pkg-config"): def PkgConfigGetDefSymbols(pkgname, tool = "pkg-config"): """Returns a dictionary of preprocessor definitions.""" - if (sys.platform == "win32" or not LocateBinary(tool)): + if (sys.platform == "win32" or CrossCompiling() or not LocateBinary(tool)): return [] if (tool == "pkg-config"): handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --cflags " + pkgname) @@ -1411,7 +1429,6 @@ def PkgConfigEnable(opt, pkgname, tool = "pkg-config"): def LibraryExists(lib, lpath=[]): """ Returns True if this library was found in the given search path, False otherwise. """ - target = GetTarget() for dir in lpath: @@ -1517,6 +1534,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, for d, v in defs.values(): DefSymbol(target_pkg, d, v) return + elif (GetHost() == "darwin" and framework != None): if (os.path.isdir("/Library/Frameworks/%s.framework" % framework) or os.path.isdir("/System/Library/Frameworks/%s.framework" % framework) or @@ -1532,6 +1550,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, print("%sERROR:%s Could not locate framework %s, aborting build" % (GetColor("red"), GetColor(), framework)) exit() return + elif (LocateBinary(tool) != None and (tool != "pkg-config" or pkgconfig != None)): if (isinstance(pkgconfig, str) or tool != "pkg-config"): if (PkgConfigHavePkg(pkgconfig, tool)): @@ -1553,6 +1572,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, else: print("%sERROR:%s Could not locate pkg-config package %s, aborting build" % (GetColor("red"), GetColor(), pkgconfig)) exit() + else: # Okay, our pkg-config attempts failed. Let's try locating the libs by ourselves. have_pkg = True @@ -1825,56 +1845,82 @@ def SdkLocateMax(): SDK[version+"CS"] = top + subdir def SdkLocatePython(force_use_sys_executable = False): - if (PkgSkip("PYTHON")==0): - if GetTarget() != GetHost(): - exit('Use --no-python when cross-compiling until support has been added') + if PkgSkip("PYTHON"): + SDK["PYTHONEXEC"] = os.path.realpath(sys.executable) + return - if (GetTarget() == 'windows' and not force_use_sys_executable): - SDK["PYTHON"] = GetThirdpartyBase()+"/win-python" - if (GetOptimize() <= 2): - SDK["PYTHON"] += "-dbg" - if (GetTargetArch() == 'x64' and os.path.isdir(SDK["PYTHON"] + "-x64")): - SDK["PYTHON"] += "-x64" + if CrossCompiling(): + force_use_sys_executable = False - SDK["PYTHONEXEC"] = SDK["PYTHON"].replace('/', '\\') + "\\python" - if (GetOptimize() <= 2): - SDK["PYTHONEXEC"] += "_d.exe" - else: - SDK["PYTHONEXEC"] += ".exe" - - if (not os.path.isfile(SDK["PYTHONEXEC"])): - exit("Could not find %s!" % SDK["PYTHONEXEC"]) - - # Determine which version it is by checking which dll is in the directory. - if (GetOptimize() <= 2): - py_dlls = glob.glob(SDK["PYTHON"] + "/python[0-9][0-9]_d.dll") - else: - py_dlls = glob.glob(SDK["PYTHON"] + "/python[0-9][0-9].dll") - - if len(py_dlls) == 0: - exit("Could not find the Python dll in %s." % (SDK["PYTHON"])) - elif len(py_dlls) > 1: - exit("Found multiple Python dlls in %s." % (SDK["PYTHON"])) - - py_dll = os.path.basename(py_dlls[0]) - SDK["PYTHONVERSION"] = "python" + py_dll[6] + "." + py_dll[7] - - elif (GetTarget() == 'windows'): - SDK["PYTHON"] = os.path.dirname(sysconfig.get_python_inc()) - SDK["PYTHONVERSION"] = "python" + sysconfig.get_python_version() - SDK["PYTHONEXEC"] = sys.executable + if (GetTarget() == 'windows' and not force_use_sys_executable): + SDK["PYTHON"] = GetThirdpartyBase()+"/win-python" + if (GetOptimize() <= 2): + SDK["PYTHON"] += "-dbg" + if (GetTargetArch() == 'x64' and os.path.isdir(SDK["PYTHON"] + "-x64")): + SDK["PYTHON"] += "-x64" + SDK["PYTHONEXEC"] = SDK["PYTHON"].replace('/', '\\') + "\\python" + if (GetOptimize() <= 2): + SDK["PYTHONEXEC"] += "_d.exe" else: - SDK["PYTHON"] = sysconfig.get_python_inc() - SDK["PYTHONVERSION"] = "python" + sysconfig.get_python_version() - SDK["PYTHONEXEC"] = os.path.realpath(sys.executable) + SDK["PYTHONEXEC"] += ".exe" - if GetVerbose(): - print("Using Python %s build located at %s" % (SDK["PYTHONVERSION"][6:9], SDK["PYTHON"])) + if (not os.path.isfile(SDK["PYTHONEXEC"])): + exit("Could not find %s!" % SDK["PYTHONEXEC"]) + + # Determine which version it is by checking which dll is in the directory. + if (GetOptimize() <= 2): + py_dlls = glob.glob(SDK["PYTHON"] + "/python[0-9][0-9]_d.dll") + else: + py_dlls = glob.glob(SDK["PYTHON"] + "/python[0-9][0-9].dll") + + if len(py_dlls) == 0: + exit("Could not find the Python dll in %s." % (SDK["PYTHON"])) + elif len(py_dlls) > 1: + exit("Found multiple Python dlls in %s." % (SDK["PYTHON"])) + + py_dll = os.path.basename(py_dlls[0]) + SDK["PYTHONVERSION"] = "python" + py_dll[6] + "." + py_dll[7] + + elif CrossCompiling(): + tp_python = os.path.join(GetThirdpartyDir(), "python") + SDK["PYTHON"] = tp_python + "/include" + + if GetTarget() == 'darwin': + py_libs = glob.glob(tp_python + "/lib/libpython[0-9].[0-9].dylib") + else: + py_libs = glob.glob(tp_python + "/lib/libpython[0-9].[0-9].so") + + if len(py_libs) == 0: + py_libs = glob.glob(tp_python + "/lib/libpython[0-9].[0-9].a") + + if len(py_libs) == 0: + exit("Could not find the Python library in %s." % (tp_python)) + elif len(py_libs) > 1: + exit("Found multiple Python libraries in %s." % (tp_python)) + + py_lib = os.path.basename(py_libs[0]) + SDK["PYTHONVERSION"] = "python" + py_lib[9] + "." + py_lib[11] + + elif (GetTarget() == 'windows'): + SDK["PYTHON"] = os.path.dirname(sysconfig.get_python_inc()) + SDK["PYTHONVERSION"] = "python" + sysconfig.get_python_version() + SDK["PYTHONEXEC"] = sys.executable else: + SDK["PYTHON"] = sysconfig.get_python_inc() + SDK["PYTHONVERSION"] = "python" + sysconfig.get_python_version() SDK["PYTHONEXEC"] = os.path.realpath(sys.executable) + if CrossCompiling(): + SDK["PYTHONEXEC"] = sys.executable + host_version = "python" + sysconfig.get_python_version() + if SDK["PYTHONVERSION"] != host_version: + exit("Host Python version (%s) must be the same as target Python version (%s)!" % (host_version, SDK["PYTHONVERSION"])) + + if GetVerbose(): + print("Using Python %s build located at %s" % (SDK["PYTHONVERSION"][6:9], SDK["PYTHON"])) + def SdkLocateVisualStudio(): if (GetHost() != "windows"): return vcdir = GetRegistryKey("SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7", "10.0") @@ -2025,9 +2071,9 @@ def SdkLocateAndroid(): SDK["ANDROID_NDK"] = ndk_root # Determine the toolchain location. - gcc_ver = '4.7' + gcc_ver = '4.8' arch = GetTargetArch() - if arch == 'armv7' or arch == 'arm': + if arch == 'armv7a' or arch == 'arm': arch = 'arm' toolchain = 'arm-linux-androideabi-' + gcc_ver elif arch == 'x86': @@ -2045,8 +2091,10 @@ def SdkLocateAndroid(): #IncDirectory("ALWAYS", os.path.join(SDK["SYSROOT"], 'usr', 'include')) stdlibc = os.path.join(ndk_root, 'sources', 'cxx-stl', 'gnu-libstdc++', gcc_ver) - IncDirectory("ALWAYS", os.path.join(stdlibc, 'include')) - IncDirectory("ALWAYS", os.path.join(stdlibc, 'libs', abi, 'include')) + SDK["ANDROID_STL"] = stdlibc + + #IncDirectory("ALWAYS", os.path.join(stdlibc, 'include')) + #IncDirectory("ALWAYS", os.path.join(stdlibc, 'libs', abi, 'include')) stl_lib = os.path.join(stdlibc, 'libs', abi, 'libgnustl_shared.so') LibName("ALWAYS", stl_lib) @@ -2231,7 +2279,9 @@ def SetupBuildEnvironment(compiler): global SYS_LIB_DIRS # gcc doesn't add this one, but we do want it: - SYS_LIB_DIRS.append('/usr/local/lib') + local_lib = SDK.get("SYSROOT", "") + "/usr/local/lib" + if os.path.isdir(local_lib): + SYS_LIB_DIRS.append(local_lib) cmd = GetCXX() + " -print-search-dirs" @@ -2253,7 +2303,8 @@ def SetupBuildEnvironment(compiler): returnval = handle.close() if returnval != None and returnval != 0: print("%sWARNING:%s %s failed" % (GetColor("red"), GetColor(), cmd)) - SYS_LIB_DIRS += ['/usr/lib'] + SYS_LIB_DIRS += [SDK.get("SYSROOT", "") + "/usr/lib"] + elif GetVerbose(): print("System library search path: %s" % ':'.join(SYS_LIB_DIRS)) diff --git a/panda/src/express/virtualFileMountAndroidAsset.I b/panda/src/express/virtualFileMountAndroidAsset.I index 66b65713d4..14a4e4e07c 100644 --- a/panda/src/express/virtualFileMountAndroidAsset.I +++ b/panda/src/express/virtualFileMountAndroidAsset.I @@ -31,5 +31,5 @@ VirtualFileMountAndroidAsset(AAssetManager *mgr, const string &apk_path) : //////////////////////////////////////////////////////////////////// INLINE VirtualFileMountAndroidAsset::AssetStream:: AssetStream(AAsset *asset) : - istream(new AssetStreamBuf(asset)) { + istream(new VirtualFileMountAndroidAsset::AssetStreamBuf(asset)) { } diff --git a/panda/src/net/connectionManager.cxx b/panda/src/net/connectionManager.cxx index fd4d63a169..8c25753cd4 100644 --- a/panda/src/net/connectionManager.cxx +++ b/panda/src/net/connectionManager.cxx @@ -24,6 +24,8 @@ #if defined(WIN32_VC) || defined(WIN64_VC) #include // For gethostname() #include // For GetAdaptersAddresses() +#elif defined(ANDROID) +#include #else #include #include @@ -540,14 +542,14 @@ scan_interfaces() { TextEncoder encoder; encoder.set_wtext(wstring(p->FriendlyName)); string friendly_name = encoder.get_text(); - + Interface iface; iface.set_name(friendly_name); if (p->PhysicalAddressLength > 0) { iface.set_mac_address(format_mac_address((const unsigned char *)p->PhysicalAddress, p->PhysicalAddressLength)); } - + if (p->OperStatus == IfOperStatusUp) { // Prefixes are a linked list, in the order Network IP, // Adapter IP, Broadcast IP (plus more). @@ -584,6 +586,9 @@ scan_interfaces() { PANDA_FREE_ARRAY(addresses); } +#elif defined(ANDROID) + // TODO: implementation using netlink_socket? + #else // WIN32_VC struct ifaddrs *ifa; if (getifaddrs(&ifa) != 0) { From 4ffb512faefbe8c6be8e7e95183a6e036ee03160 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 11:27:40 +0000 Subject: [PATCH 15/27] Fix error in get_region_pixels_i that causes crash in tinydisplay --- panda/src/display/displayRegion.I | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/panda/src/display/displayRegion.I b/panda/src/display/displayRegion.I index 5f14074538..53d68ff00d 100644 --- a/panda/src/display/displayRegion.I +++ b/panda/src/display/displayRegion.I @@ -580,9 +580,9 @@ get_region_pixels_i(int i, int &xo, int &yo, int &w, int &h) const { CDReader cdata(_cycler); const Region ®ion = cdata->_regions[i]; xo = region._pixels_i[0]; - yo = region._pixels_i[2]; + yo = region._pixels_i[3]; w = region._pixels_i[1] - xo; - h = region._pixels_i[3] - yo; + h = region._pixels_i[2] - yo; } //////////////////////////////////////////////////////////////////// @@ -1068,9 +1068,9 @@ INLINE void DisplayRegionPipelineReader:: get_region_pixels_i(int i, int &xo, int &yo, int &w, int &h) const { const DisplayRegion::Region ®ion = _cdata->_regions[i]; xo = region._pixels_i[0]; - yo = region._pixels_i[2]; + yo = region._pixels_i[3]; w = region._pixels_i[1] - xo; - h = region._pixels_i[3] - yo; + h = region._pixels_i[2] - yo; } //////////////////////////////////////////////////////////////////// From 32a9e4d9edde5eea9be817eddfe1e64e358ff9f3 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 11:34:41 +0000 Subject: [PATCH 16/27] Add support for sRGB framebuffers and blending to tinydisplay renderer. --- .../tinydisplay/p3tinydisplay_composite1.cxx | 1 + panda/src/tinydisplay/srgb_tables.cxx | 346 + panda/src/tinydisplay/srgb_tables.h | 6 + panda/src/tinydisplay/store_pixel.h | 23 +- panda/src/tinydisplay/store_pixel.py | 22 + panda/src/tinydisplay/store_pixel_code.h | 5911 +++++++++++++++++ panda/src/tinydisplay/store_pixel_table.h | 1 + .../tinydisplay/tinyGraphicsStateGuardian.cxx | 83 +- panda/src/tinydisplay/zbuffer.cxx | 24 +- panda/src/tinydisplay/zbuffer.h | 43 +- panda/src/tinydisplay/ztriangle.py | 9 +- panda/src/tinydisplay/ztriangle_code_1.h | 446 +- panda/src/tinydisplay/ztriangle_code_2.h | 1334 ++-- panda/src/tinydisplay/ztriangle_code_3.h | 446 +- panda/src/tinydisplay/ztriangle_code_4.h | 1334 ++-- panda/src/tinydisplay/ztriangle_table.cxx | 1738 ++++- panda/src/tinydisplay/ztriangle_table.h | 2 +- 17 files changed, 10817 insertions(+), 952 deletions(-) create mode 100644 panda/src/tinydisplay/srgb_tables.cxx create mode 100644 panda/src/tinydisplay/srgb_tables.h diff --git a/panda/src/tinydisplay/p3tinydisplay_composite1.cxx b/panda/src/tinydisplay/p3tinydisplay_composite1.cxx index 95f28d5ca6..302e259ed6 100755 --- a/panda/src/tinydisplay/p3tinydisplay_composite1.cxx +++ b/panda/src/tinydisplay/p3tinydisplay_composite1.cxx @@ -6,6 +6,7 @@ #include "td_light.cxx" #include "memory.cxx" #include "specbuf.cxx" +#include "srgb_tables.cxx" #include "store_pixel.cxx" #include "td_texture.cxx" #include "tinyGeomMunger.cxx" diff --git a/panda/src/tinydisplay/srgb_tables.cxx b/panda/src/tinydisplay/srgb_tables.cxx new file mode 100644 index 0000000000..b7901d39cd --- /dev/null +++ b/panda/src/tinydisplay/srgb_tables.cxx @@ -0,0 +1,346 @@ +const unsigned short decode_sRGB[256] = { 0x0000, 0x0013, 0x0027, 0x003b, + 0x004f, 0x0063, 0x0077, 0x008b, 0x009f, 0x00b3, 0x00c6, 0x00db, 0x00f0, + 0x0107, 0x011f, 0x0139, 0x0153, 0x016f, 0x018c, 0x01aa, 0x01ca, 0x01eb, + 0x020d, 0x0231, 0x0256, 0x027d, 0x02a4, 0x02ce, 0x02f9, 0x0325, 0x0352, + 0x0381, 0x03b2, 0x03e4, 0x0418, 0x044d, 0x0484, 0x04bc, 0x04f6, 0x0531, + 0x056e, 0x05ad, 0x05ed, 0x062f, 0x0672, 0x06b7, 0x06fe, 0x0746, 0x0791, + 0x07dc, 0x082a, 0x0879, 0x08ca, 0x091d, 0x0971, 0x09c7, 0x0a1f, 0x0a79, + 0x0ad4, 0x0b32, 0x0b91, 0x0bf2, 0x0c54, 0x0cb9, 0x0d1f, 0x0d88, 0x0df2, + 0x0e5e, 0x0ecc, 0x0f3c, 0x0fad, 0x1021, 0x1096, 0x110e, 0x1187, 0x1203, + 0x1280, 0x12ff, 0x1380, 0x1404, 0x1489, 0x1510, 0x1599, 0x1624, 0x16b2, + 0x1741, 0x17d2, 0x1865, 0x18fb, 0x1992, 0x1a2c, 0x1ac8, 0x1b65, 0x1c05, + 0x1ca7, 0x1d4b, 0x1df1, 0x1e99, 0x1f44, 0x1ff0, 0x209f, 0x2150, 0x2203, + 0x22b8, 0x2370, 0x2429, 0x24e5, 0x25a3, 0x2663, 0x2726, 0x27ea, 0x28b1, + 0x297a, 0x2a45, 0x2b13, 0x2be3, 0x2cb5, 0x2d89, 0x2e60, 0x2f39, 0x3014, + 0x30f2, 0x31d2, 0x32b4, 0x3398, 0x347f, 0x3569, 0x3654, 0x3742, 0x3832, + 0x3925, 0x3a1a, 0x3b11, 0x3c0b, 0x3d07, 0x3e05, 0x3f06, 0x400a, 0x410f, + 0x4218, 0x4322, 0x442f, 0x453f, 0x4650, 0x4765, 0x487c, 0x4995, 0x4ab1, + 0x4bcf, 0x4cf0, 0x4e13, 0x4f39, 0x5061, 0x518b, 0x52b9, 0x53e8, 0x551b, + 0x5650, 0x5787, 0x58c1, 0x59fd, 0x5b3c, 0x5c7e, 0x5dc2, 0x5f09, 0x6052, + 0x619e, 0x62ec, 0x643d, 0x6591, 0x66e7, 0x6840, 0x699b, 0x6afa, 0x6c5a, + 0x6dbe, 0x6f24, 0x708c, 0x71f8, 0x7366, 0x74d6, 0x764a, 0x77c0, 0x7938, + 0x7ab4, 0x7c32, 0x7db3, 0x7f36, 0x80bc, 0x8245, 0x83d1, 0x855f, 0x86f0, + 0x8884, 0x8a1a, 0x8bb4, 0x8d50, 0x8eee, 0x9090, 0x9234, 0x93db, 0x9585, + 0x9732, 0x98e1, 0x9a93, 0x9c48, 0x9e00, 0x9fbb, 0xa178, 0xa338, 0xa4fb, + 0xa6c1, 0xa88a, 0xaa56, 0xac24, 0xadf5, 0xafc9, 0xb1a0, 0xb37a, 0xb557, + 0xb736, 0xb919, 0xbafe, 0xbce6, 0xbed2, 0xc0c0, 0xc2b0, 0xc4a4, 0xc69b, + 0xc895, 0xca91, 0xcc91, 0xce93, 0xd098, 0xd2a1, 0xd4ac, 0xd6ba, 0xd8cb, + 0xdadf, 0xdcf7, 0xdf11, 0xe12e, 0xe34e, 0xe571, 0xe796, 0xe9bf, 0xebeb, + 0xee1a, 0xf04c, 0xf281, 0xf4b9, 0xf6f4, 0xf932, 0xfb73, 0xfdb7, 0xffff}; + +const unsigned char encode_sRGB[4096] = { 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, + 0x05, 0x06, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x0d, 0x0e, + 0x0f, 0x0f, 0x10, 0x10, 0x11, 0x12, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x15, + 0x16, 0x16, 0x17, 0x17, 0x17, 0x18, 0x18, 0x19, 0x19, 0x19, 0x1a, 0x1a, 0x1b, + 0x1b, 0x1b, 0x1c, 0x1c, 0x1d, 0x1d, 0x1d, 0x1e, 0x1e, 0x1e, 0x1f, 0x1f, 0x1f, + 0x20, 0x20, 0x20, 0x21, 0x21, 0x21, 0x22, 0x22, 0x22, 0x22, 0x23, 0x23, 0x23, + 0x24, 0x24, 0x24, 0x25, 0x25, 0x25, 0x25, 0x26, 0x26, 0x26, 0x26, 0x27, 0x27, + 0x27, 0x28, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x2a, 0x2a, 0x2a, 0x2a, + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2c, 0x2c, 0x2c, 0x2c, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2f, 0x2f, 0x2f, 0x2f, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x31, 0x31, 0x31, 0x31, 0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x34, 0x34, 0x34, 0x34, 0x34, 0x35, 0x35, 0x35, 0x35, 0x35, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x39, 0x39, 0x39, 0x39, 0x39, 0x39, 0x3a, 0x3a, 0x3a, 0x3a, + 0x3a, 0x3a, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, + 0x3c, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, + 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x46, 0x46, + 0x46, 0x46, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x48, 0x48, 0x48, 0x48, + 0x48, 0x48, 0x48, 0x48, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x4a, 0x4a, + 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4a, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, 0x4b, + 0x4b, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4d, 0x4d, 0x4d, 0x4d, 0x4d, + 0x4d, 0x4d, 0x4d, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4f, + 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, + 0x50, 0x50, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x51, 0x52, 0x52, + 0x52, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, + 0x53, 0x53, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, + 0x56, 0x56, 0x56, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x58, + 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x59, 0x59, 0x59, 0x59, + 0x59, 0x59, 0x59, 0x59, 0x59, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, + 0x5a, 0x5a, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5c, + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5d, 0x5d, 0x5d, 0x5d, + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, + 0x5e, 0x5e, 0x5e, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x62, 0x62, 0x62, 0x62, 0x62, + 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, + 0x63, 0x63, 0x63, 0x63, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, + 0x64, 0x64, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x67, + 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x68, 0x68, 0x68, + 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x69, 0x69, 0x69, 0x69, 0x69, + 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, + 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6a, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, + 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, + 0x6c, 0x6c, 0x6c, 0x6c, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, + 0x6d, 0x6d, 0x6d, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, + 0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, + 0x6f, 0x6f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, + 0x71, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, + 0x72, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, + 0x73, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, + 0x74, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, + 0x75, 0x75, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, + 0x76, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, + 0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, + 0x78, 0x78, 0x78, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, + 0x79, 0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, + 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, + 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, + 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, + 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, + 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, + 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, + 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, + 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, + 0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, + 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, + 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, + 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, + 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, + 0x8a, 0x8a, 0x8a, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, + 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, + 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8d, 0x8d, + 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, + 0x8d, 0x8d, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, + 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, + 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x90, 0x90, 0x90, + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, + 0x90, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, + 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, + 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x93, 0x93, 0x93, + 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, + 0x93, 0x93, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, + 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, + 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x96, + 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, + 0x96, 0x96, 0x96, 0x96, 0x96, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, + 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98, + 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, + 0x98, 0x98, 0x98, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, + 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, + 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, + 0x9a, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, + 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, + 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, + 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, + 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9d, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, + 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, + 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, + 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, + 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, + 0xa0, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, + 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, + 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, 0xa2, + 0xa2, 0xa2, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, + 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, + 0xa4, 0xa4, 0xa4, 0xa4, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, + 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa6, + 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, + 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, + 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, 0xa7, + 0xa7, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, + 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa9, 0xa9, 0xa9, + 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, + 0xa9, 0xa9, 0xa9, 0xa9, 0xa9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, + 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xac, 0xac, 0xac, 0xac, + 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, + 0xac, 0xac, 0xac, 0xac, 0xac, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, + 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, + 0xad, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xaf, 0xaf, 0xaf, + 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, + 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, + 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, + 0xb0, 0xb0, 0xb0, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, + 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb1, 0xb2, + 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, + 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb2, 0xb3, 0xb3, 0xb3, 0xb3, + 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, + 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, + 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, + 0xb4, 0xb4, 0xb4, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, + 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, + 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, + 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb7, 0xb7, + 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, + 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb7, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, + 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, + 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, + 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, + 0xb9, 0xb9, 0xb9, 0xb9, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, + 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0xba, + 0xba, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, + 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, + 0xbb, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, + 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbd, + 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, + 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbd, 0xbe, 0xbe, + 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, + 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbf, 0xbf, 0xbf, 0xbf, + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, + 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, + 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, + 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, + 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, + 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, + 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc4, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, + 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, + 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, + 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, + 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, + 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, + 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, + 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, + 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, + 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, + 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xca, 0xca, 0xca, 0xca, 0xca, + 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, + 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xca, 0xcb, 0xcb, 0xcb, 0xcb, + 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, + 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcc, 0xcc, 0xcc, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcd, 0xcd, + 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, + 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xce, + 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, + 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, 0xce, + 0xce, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, + 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, + 0xcf, 0xcf, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, + 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, + 0xd0, 0xd0, 0xd0, 0xd0, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, + 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, + 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd1, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, + 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, + 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd3, 0xd3, 0xd3, 0xd3, + 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, + 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd3, 0xd4, 0xd4, + 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, + 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, 0xd4, + 0xd4, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, + 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, + 0xd5, 0xd5, 0xd5, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, + 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, + 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, + 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, + 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, + 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, + 0xd9, 0xd9, 0xd9, 0xd9, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, + 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, + 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xda, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, + 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, + 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdc, 0xdc, + 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, + 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, + 0xdc, 0xdc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, + 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, + 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, + 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, + 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0xdf, 0xdf, + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, + 0xdf, 0xdf, 0xdf, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, + 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, + 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe2, + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, + 0xe2, 0xe2, 0xe2, 0xe2, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, + 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, + 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe4, 0xe4, 0xe4, + 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, + 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, 0xe4, + 0xe4, 0xe4, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, + 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, + 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, + 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, + 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, + 0xe6, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, + 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, + 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, + 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, + 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, + 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, + 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, + 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, + 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, + 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, + 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, + 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, 0xec, + 0xec, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, + 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, + 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xed, 0xee, 0xee, 0xee, 0xee, 0xee, + 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, + 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, + 0xee, 0xee, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, + 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, + 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, + 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, + 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, + 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, + 0xf3, 0xf3, 0xf3, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, + 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, + 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf4, 0xf5, 0xf5, + 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, + 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, + 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + 0xf6, 0xf6, 0xf6, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, + 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, + 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf7, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, + 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, + 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, + 0xf9, 0xf9, 0xf9, 0xf9, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, + 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, + 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, + 0xfa, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, + 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, + 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, + 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/panda/src/tinydisplay/srgb_tables.h b/panda/src/tinydisplay/srgb_tables.h new file mode 100644 index 0000000000..2ff9108aa5 --- /dev/null +++ b/panda/src/tinydisplay/srgb_tables.h @@ -0,0 +1,6 @@ +/* 8-bit sRGB to 16-bit linear */ +extern const unsigned short decode_sRGB[256]; + +/* 12-bit linear to 8-bit sRGB. I used 12-bit because it can + represent all possible 8-bit sRGB values. */ +extern const unsigned char encode_sRGB[4096]; diff --git a/panda/src/tinydisplay/store_pixel.h b/panda/src/tinydisplay/store_pixel.h index 234b06e872..3c4a86ba3c 100644 --- a/panda/src/tinydisplay/store_pixel.h +++ b/panda/src/tinydisplay/store_pixel.h @@ -18,7 +18,7 @@ /* This file generates lots of "template" variations, using #define and #include, similar to the way ztriangle.h works. */ -static void +static void FNAME(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) { unsigned int fr = PIXEL_R(result); unsigned int fg = PIXEL_G(result); @@ -32,8 +32,27 @@ FNAME(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) { result = RGBA_TO_PIXEL(r, g, b, a); } +#ifdef FNAME_S +/* sRGB variant. */ -#undef FNAME +static void +FNAME_S(store_pixel) (ZBuffer *zb, PIXEL &result, int r, int g, int b, int a) { + unsigned int fr = PIXEL_SR(result); + unsigned int fg = PIXEL_SG(result); + unsigned int fb = PIXEL_SB(result); + unsigned int fa = PIXEL_A(result); + + r = STORE_PIXEL_0(fr, ((unsigned int)r * OP_A(fr, r) >> 16) + ((unsigned int)fr * OP_B(fr, r) >> 16)); + g = STORE_PIXEL_1(fg, ((unsigned int)g * OP_A(fg, g) >> 16) + ((unsigned int)fg * OP_B(fg, g) >> 16)); + b = STORE_PIXEL_2(fg, ((unsigned int)b * OP_A(fb, b) >> 16) + ((unsigned int)fb * OP_B(fb, b) >> 16)); + a = STORE_PIXEL_3(fg, ((unsigned int)a * OP_A(fa, a) >> 16) + ((unsigned int)fa * OP_B(fa, a) >> 16)); + result = SRGBA_TO_PIXEL(r, g, b, a); +} + +#undef FNAME_S +#endif + +#undef FNAME #undef OP_A #undef OP_B #undef STORE_PIXEL_0 diff --git a/panda/src/tinydisplay/store_pixel.py b/panda/src/tinydisplay/store_pixel.py index 67ea579871..b9d2b8cf08 100644 --- a/panda/src/tinydisplay/store_pixel.py +++ b/panda/src/tinydisplay/store_pixel.py @@ -63,6 +63,9 @@ for op_a in Operands: for mask in range(0, 16): fname = getFname(op_a, op_b, mask) print >> code, '#define FNAME(name) %s' % (fname) + if mask & (1 | 2 | 3): + print >> code, '#define FNAME_S(name) %s_s' % (fname) + print >> code, '#define OP_A(f, i) ((unsigned int)(%s))' % (CodeTable[op_a]) print >> code, '#define OP_B(f, i) ((unsigned int)(%s))' % (CodeTable[op_b]) for b in range(0, 4): @@ -91,3 +94,22 @@ for op_a in Operands: print >> code, ' },' print >> code, '};' +print >> code + +# Now do this again, but for the sRGB function pointers. +print >> table, 'extern const ZB_storePixelFunc store_pixel_funcs_sRGB%s;' % (arraySize) +print >> code, 'const ZB_storePixelFunc store_pixel_funcs_sRGB%s = {' % (arraySize) + +for op_a in Operands: + print >> code, ' {' + for op_b in Operands: + print >> code, ' {' + for mask in range(0, 16): + fname = getFname(op_a, op_b, mask) + if mask & (1 | 2 | 3): + print >> code, ' %s_s,' % (fname) + else: + print >> code, ' %s,' % (fname) + print >> code, ' },' + print >> code, ' },' +print >> code, '};' diff --git a/panda/src/tinydisplay/store_pixel_code.h b/panda/src/tinydisplay/store_pixel_code.h index b47bd3cc33..b2ff78efa1 100644 --- a/panda/src/tinydisplay/store_pixel_code.h +++ b/panda/src/tinydisplay/store_pixel_code.h @@ -10,6 +10,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_r000 +#define FNAME_S(name) store_pixel_zero_zero_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19,6 +20,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_0g00 +#define FNAME_S(name) store_pixel_zero_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28,6 +30,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_rg00 +#define FNAME_S(name) store_pixel_zero_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -46,6 +49,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_r0b0 +#define FNAME_S(name) store_pixel_zero_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -55,6 +59,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_0gb0 +#define FNAME_S(name) store_pixel_zero_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -64,6 +69,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_rgb0 +#define FNAME_S(name) store_pixel_zero_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -82,6 +88,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_r00a +#define FNAME_S(name) store_pixel_zero_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -91,6 +98,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_0g0a +#define FNAME_S(name) store_pixel_zero_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -100,6 +108,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_rg0a +#define FNAME_S(name) store_pixel_zero_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -118,6 +127,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_r0ba +#define FNAME_S(name) store_pixel_zero_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -127,6 +137,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_0gba +#define FNAME_S(name) store_pixel_zero_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -136,6 +147,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_zero_rgba +#define FNAME_S(name) store_pixel_zero_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -154,6 +166,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_r000 +#define FNAME_S(name) store_pixel_zero_one_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -163,6 +176,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_0g00 +#define FNAME_S(name) store_pixel_zero_one_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -172,6 +186,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_rg00 +#define FNAME_S(name) store_pixel_zero_one_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -190,6 +205,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_r0b0 +#define FNAME_S(name) store_pixel_zero_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -199,6 +215,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_0gb0 +#define FNAME_S(name) store_pixel_zero_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -208,6 +225,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_rgb0 +#define FNAME_S(name) store_pixel_zero_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -226,6 +244,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_r00a +#define FNAME_S(name) store_pixel_zero_one_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -235,6 +254,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_0g0a +#define FNAME_S(name) store_pixel_zero_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -244,6 +264,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_rg0a +#define FNAME_S(name) store_pixel_zero_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -262,6 +283,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_r0ba +#define FNAME_S(name) store_pixel_zero_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -271,6 +293,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_0gba +#define FNAME_S(name) store_pixel_zero_one_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -280,6 +303,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_one_rgba +#define FNAME_S(name) store_pixel_zero_one_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -298,6 +322,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_r000 +#define FNAME_S(name) store_pixel_zero_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -307,6 +332,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_0g00 +#define FNAME_S(name) store_pixel_zero_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -316,6 +342,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_rg00 +#define FNAME_S(name) store_pixel_zero_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -334,6 +361,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_r0b0 +#define FNAME_S(name) store_pixel_zero_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -343,6 +371,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_0gb0 +#define FNAME_S(name) store_pixel_zero_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -352,6 +381,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_rgb0 +#define FNAME_S(name) store_pixel_zero_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -370,6 +400,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_r00a +#define FNAME_S(name) store_pixel_zero_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -379,6 +410,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_0g0a +#define FNAME_S(name) store_pixel_zero_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -388,6 +420,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_rg0a +#define FNAME_S(name) store_pixel_zero_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -406,6 +439,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_r0ba +#define FNAME_S(name) store_pixel_zero_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -415,6 +449,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_0gba +#define FNAME_S(name) store_pixel_zero_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -424,6 +459,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_icolor_rgba +#define FNAME_S(name) store_pixel_zero_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -442,6 +478,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_r000 +#define FNAME_S(name) store_pixel_zero_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -451,6 +488,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_0g00 +#define FNAME_S(name) store_pixel_zero_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -460,6 +498,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_rg00 +#define FNAME_S(name) store_pixel_zero_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -478,6 +517,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_r0b0 +#define FNAME_S(name) store_pixel_zero_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -487,6 +527,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_0gb0 +#define FNAME_S(name) store_pixel_zero_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -496,6 +537,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_rgb0 +#define FNAME_S(name) store_pixel_zero_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -514,6 +556,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_r00a +#define FNAME_S(name) store_pixel_zero_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -523,6 +566,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_0g0a +#define FNAME_S(name) store_pixel_zero_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -532,6 +576,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_rg0a +#define FNAME_S(name) store_pixel_zero_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -550,6 +595,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_r0ba +#define FNAME_S(name) store_pixel_zero_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -559,6 +605,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_0gba +#define FNAME_S(name) store_pixel_zero_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -568,6 +615,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_micolor_rgba +#define FNAME_S(name) store_pixel_zero_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -586,6 +634,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_r000 +#define FNAME_S(name) store_pixel_zero_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -595,6 +644,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_0g00 +#define FNAME_S(name) store_pixel_zero_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -604,6 +654,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_rg00 +#define FNAME_S(name) store_pixel_zero_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -622,6 +673,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_r0b0 +#define FNAME_S(name) store_pixel_zero_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -631,6 +683,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_0gb0 +#define FNAME_S(name) store_pixel_zero_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -640,6 +693,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_rgb0 +#define FNAME_S(name) store_pixel_zero_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -658,6 +712,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_r00a +#define FNAME_S(name) store_pixel_zero_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -667,6 +722,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_0g0a +#define FNAME_S(name) store_pixel_zero_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -676,6 +732,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_rg0a +#define FNAME_S(name) store_pixel_zero_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -694,6 +751,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_r0ba +#define FNAME_S(name) store_pixel_zero_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -703,6 +761,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_0gba +#define FNAME_S(name) store_pixel_zero_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -712,6 +771,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_fcolor_rgba +#define FNAME_S(name) store_pixel_zero_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -730,6 +790,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_r000 +#define FNAME_S(name) store_pixel_zero_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -739,6 +800,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_0g00 +#define FNAME_S(name) store_pixel_zero_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -748,6 +810,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_rg00 +#define FNAME_S(name) store_pixel_zero_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -766,6 +829,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_zero_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -775,6 +839,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_zero_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -784,6 +849,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_zero_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -802,6 +868,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_r00a +#define FNAME_S(name) store_pixel_zero_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -811,6 +878,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_0g0a +#define FNAME_S(name) store_pixel_zero_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -820,6 +888,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_rg0a +#define FNAME_S(name) store_pixel_zero_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -838,6 +907,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_r0ba +#define FNAME_S(name) store_pixel_zero_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -847,6 +917,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_0gba +#define FNAME_S(name) store_pixel_zero_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -856,6 +927,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfcolor_rgba +#define FNAME_S(name) store_pixel_zero_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -874,6 +946,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_r000 +#define FNAME_S(name) store_pixel_zero_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -883,6 +956,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_0g00 +#define FNAME_S(name) store_pixel_zero_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -892,6 +966,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_rg00 +#define FNAME_S(name) store_pixel_zero_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -910,6 +985,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_r0b0 +#define FNAME_S(name) store_pixel_zero_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -919,6 +995,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_0gb0 +#define FNAME_S(name) store_pixel_zero_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -928,6 +1005,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_rgb0 +#define FNAME_S(name) store_pixel_zero_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -946,6 +1024,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_r00a +#define FNAME_S(name) store_pixel_zero_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -955,6 +1034,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_0g0a +#define FNAME_S(name) store_pixel_zero_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -964,6 +1044,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_rg0a +#define FNAME_S(name) store_pixel_zero_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -982,6 +1063,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_r0ba +#define FNAME_S(name) store_pixel_zero_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -991,6 +1073,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_0gba +#define FNAME_S(name) store_pixel_zero_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1000,6 +1083,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ialpha_rgba +#define FNAME_S(name) store_pixel_zero_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1018,6 +1102,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_r000 +#define FNAME_S(name) store_pixel_zero_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1027,6 +1112,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_0g00 +#define FNAME_S(name) store_pixel_zero_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1036,6 +1122,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_rg00 +#define FNAME_S(name) store_pixel_zero_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1054,6 +1141,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_r0b0 +#define FNAME_S(name) store_pixel_zero_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1063,6 +1151,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_0gb0 +#define FNAME_S(name) store_pixel_zero_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1072,6 +1161,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_rgb0 +#define FNAME_S(name) store_pixel_zero_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1090,6 +1180,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_r00a +#define FNAME_S(name) store_pixel_zero_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1099,6 +1190,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_0g0a +#define FNAME_S(name) store_pixel_zero_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1108,6 +1200,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_rg0a +#define FNAME_S(name) store_pixel_zero_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1126,6 +1219,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_r0ba +#define FNAME_S(name) store_pixel_zero_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1135,6 +1229,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_0gba +#define FNAME_S(name) store_pixel_zero_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1144,6 +1239,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mialpha_rgba +#define FNAME_S(name) store_pixel_zero_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1162,6 +1258,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_r000 +#define FNAME_S(name) store_pixel_zero_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1171,6 +1268,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_0g00 +#define FNAME_S(name) store_pixel_zero_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1180,6 +1278,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_rg00 +#define FNAME_S(name) store_pixel_zero_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1198,6 +1297,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_r0b0 +#define FNAME_S(name) store_pixel_zero_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1207,6 +1307,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_0gb0 +#define FNAME_S(name) store_pixel_zero_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1216,6 +1317,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_rgb0 +#define FNAME_S(name) store_pixel_zero_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1234,6 +1336,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_r00a +#define FNAME_S(name) store_pixel_zero_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1243,6 +1346,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_0g0a +#define FNAME_S(name) store_pixel_zero_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1252,6 +1356,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_rg0a +#define FNAME_S(name) store_pixel_zero_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1270,6 +1375,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_r0ba +#define FNAME_S(name) store_pixel_zero_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1279,6 +1385,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_0gba +#define FNAME_S(name) store_pixel_zero_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1288,6 +1395,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_falpha_rgba +#define FNAME_S(name) store_pixel_zero_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1306,6 +1414,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_r000 +#define FNAME_S(name) store_pixel_zero_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1315,6 +1424,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_0g00 +#define FNAME_S(name) store_pixel_zero_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1324,6 +1434,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_rg00 +#define FNAME_S(name) store_pixel_zero_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1342,6 +1453,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_zero_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1351,6 +1463,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_zero_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1360,6 +1473,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_zero_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1378,6 +1492,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_r00a +#define FNAME_S(name) store_pixel_zero_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1387,6 +1502,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_0g0a +#define FNAME_S(name) store_pixel_zero_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1396,6 +1512,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_rg0a +#define FNAME_S(name) store_pixel_zero_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1414,6 +1531,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_r0ba +#define FNAME_S(name) store_pixel_zero_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1423,6 +1541,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_0gba +#define FNAME_S(name) store_pixel_zero_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1432,6 +1551,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mfalpha_rgba +#define FNAME_S(name) store_pixel_zero_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1450,6 +1570,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_r000 +#define FNAME_S(name) store_pixel_zero_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1459,6 +1580,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_0g00 +#define FNAME_S(name) store_pixel_zero_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1468,6 +1590,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_rg00 +#define FNAME_S(name) store_pixel_zero_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1486,6 +1609,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_r0b0 +#define FNAME_S(name) store_pixel_zero_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1495,6 +1619,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_0gb0 +#define FNAME_S(name) store_pixel_zero_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1504,6 +1629,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_rgb0 +#define FNAME_S(name) store_pixel_zero_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1522,6 +1648,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_r00a +#define FNAME_S(name) store_pixel_zero_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1531,6 +1658,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_0g0a +#define FNAME_S(name) store_pixel_zero_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1540,6 +1668,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_rg0a +#define FNAME_S(name) store_pixel_zero_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1558,6 +1687,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_r0ba +#define FNAME_S(name) store_pixel_zero_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1567,6 +1697,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_0gba +#define FNAME_S(name) store_pixel_zero_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1576,6 +1707,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_ccolor_rgba +#define FNAME_S(name) store_pixel_zero_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1594,6 +1726,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_r000 +#define FNAME_S(name) store_pixel_zero_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1603,6 +1736,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_0g00 +#define FNAME_S(name) store_pixel_zero_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1612,6 +1746,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_rg00 +#define FNAME_S(name) store_pixel_zero_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1630,6 +1765,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_r0b0 +#define FNAME_S(name) store_pixel_zero_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1639,6 +1775,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_0gb0 +#define FNAME_S(name) store_pixel_zero_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1648,6 +1785,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_rgb0 +#define FNAME_S(name) store_pixel_zero_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1666,6 +1804,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_r00a +#define FNAME_S(name) store_pixel_zero_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1675,6 +1814,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_0g0a +#define FNAME_S(name) store_pixel_zero_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1684,6 +1824,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_rg0a +#define FNAME_S(name) store_pixel_zero_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1702,6 +1843,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_r0ba +#define FNAME_S(name) store_pixel_zero_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1711,6 +1853,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_0gba +#define FNAME_S(name) store_pixel_zero_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1720,6 +1863,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mccolor_rgba +#define FNAME_S(name) store_pixel_zero_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1738,6 +1882,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_r000 +#define FNAME_S(name) store_pixel_zero_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1747,6 +1892,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_0g00 +#define FNAME_S(name) store_pixel_zero_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1756,6 +1902,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_rg00 +#define FNAME_S(name) store_pixel_zero_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1774,6 +1921,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_r0b0 +#define FNAME_S(name) store_pixel_zero_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1783,6 +1931,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_0gb0 +#define FNAME_S(name) store_pixel_zero_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1792,6 +1941,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_rgb0 +#define FNAME_S(name) store_pixel_zero_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1810,6 +1960,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_r00a +#define FNAME_S(name) store_pixel_zero_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1819,6 +1970,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_0g0a +#define FNAME_S(name) store_pixel_zero_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1828,6 +1980,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_rg0a +#define FNAME_S(name) store_pixel_zero_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1846,6 +1999,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_r0ba +#define FNAME_S(name) store_pixel_zero_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1855,6 +2009,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_0gba +#define FNAME_S(name) store_pixel_zero_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1864,6 +2019,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_calpha_rgba +#define FNAME_S(name) store_pixel_zero_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1882,6 +2038,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_r000 +#define FNAME_S(name) store_pixel_zero_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1891,6 +2048,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_0g00 +#define FNAME_S(name) store_pixel_zero_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1900,6 +2058,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_rg00 +#define FNAME_S(name) store_pixel_zero_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1918,6 +2077,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_zero_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1927,6 +2087,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_zero_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1936,6 +2097,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_zero_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1954,6 +2116,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_r00a +#define FNAME_S(name) store_pixel_zero_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1963,6 +2126,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_0g0a +#define FNAME_S(name) store_pixel_zero_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -1972,6 +2136,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_rg0a +#define FNAME_S(name) store_pixel_zero_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1990,6 +2155,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_r0ba +#define FNAME_S(name) store_pixel_zero_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -1999,6 +2165,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_0gba +#define FNAME_S(name) store_pixel_zero_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2008,6 +2175,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_zero_mcalpha_rgba +#define FNAME_S(name) store_pixel_zero_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2026,6 +2194,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_r000 +#define FNAME_S(name) store_pixel_one_zero_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2035,6 +2204,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_0g00 +#define FNAME_S(name) store_pixel_one_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2044,6 +2214,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_rg00 +#define FNAME_S(name) store_pixel_one_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2062,6 +2233,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_r0b0 +#define FNAME_S(name) store_pixel_one_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2071,6 +2243,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_0gb0 +#define FNAME_S(name) store_pixel_one_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2080,6 +2253,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_rgb0 +#define FNAME_S(name) store_pixel_one_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2098,6 +2272,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_r00a +#define FNAME_S(name) store_pixel_one_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2107,6 +2282,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_0g0a +#define FNAME_S(name) store_pixel_one_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2116,6 +2292,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_rg0a +#define FNAME_S(name) store_pixel_one_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2134,6 +2311,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_r0ba +#define FNAME_S(name) store_pixel_one_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2143,6 +2321,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_0gba +#define FNAME_S(name) store_pixel_one_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2152,6 +2331,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_zero_rgba +#define FNAME_S(name) store_pixel_one_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2170,6 +2350,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_r000 +#define FNAME_S(name) store_pixel_one_one_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2179,6 +2360,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_0g00 +#define FNAME_S(name) store_pixel_one_one_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2188,6 +2370,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_rg00 +#define FNAME_S(name) store_pixel_one_one_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2206,6 +2389,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_r0b0 +#define FNAME_S(name) store_pixel_one_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2215,6 +2399,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_0gb0 +#define FNAME_S(name) store_pixel_one_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2224,6 +2409,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_rgb0 +#define FNAME_S(name) store_pixel_one_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2242,6 +2428,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_r00a +#define FNAME_S(name) store_pixel_one_one_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2251,6 +2438,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_0g0a +#define FNAME_S(name) store_pixel_one_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2260,6 +2448,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_rg0a +#define FNAME_S(name) store_pixel_one_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2278,6 +2467,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_r0ba +#define FNAME_S(name) store_pixel_one_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2287,6 +2477,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_0gba +#define FNAME_S(name) store_pixel_one_one_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2296,6 +2487,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_one_rgba +#define FNAME_S(name) store_pixel_one_one_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2314,6 +2506,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_r000 +#define FNAME_S(name) store_pixel_one_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2323,6 +2516,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_0g00 +#define FNAME_S(name) store_pixel_one_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2332,6 +2526,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_rg00 +#define FNAME_S(name) store_pixel_one_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2350,6 +2545,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_r0b0 +#define FNAME_S(name) store_pixel_one_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2359,6 +2555,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_0gb0 +#define FNAME_S(name) store_pixel_one_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2368,6 +2565,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_rgb0 +#define FNAME_S(name) store_pixel_one_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2386,6 +2584,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_r00a +#define FNAME_S(name) store_pixel_one_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2395,6 +2594,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_0g0a +#define FNAME_S(name) store_pixel_one_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2404,6 +2604,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_rg0a +#define FNAME_S(name) store_pixel_one_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2422,6 +2623,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_r0ba +#define FNAME_S(name) store_pixel_one_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2431,6 +2633,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_0gba +#define FNAME_S(name) store_pixel_one_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2440,6 +2643,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_icolor_rgba +#define FNAME_S(name) store_pixel_one_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2458,6 +2662,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_r000 +#define FNAME_S(name) store_pixel_one_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2467,6 +2672,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_0g00 +#define FNAME_S(name) store_pixel_one_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2476,6 +2682,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_rg00 +#define FNAME_S(name) store_pixel_one_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2494,6 +2701,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_r0b0 +#define FNAME_S(name) store_pixel_one_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2503,6 +2711,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_0gb0 +#define FNAME_S(name) store_pixel_one_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2512,6 +2721,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_rgb0 +#define FNAME_S(name) store_pixel_one_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2530,6 +2740,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_r00a +#define FNAME_S(name) store_pixel_one_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2539,6 +2750,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_0g0a +#define FNAME_S(name) store_pixel_one_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2548,6 +2760,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_rg0a +#define FNAME_S(name) store_pixel_one_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2566,6 +2779,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_r0ba +#define FNAME_S(name) store_pixel_one_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2575,6 +2789,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_0gba +#define FNAME_S(name) store_pixel_one_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2584,6 +2799,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_micolor_rgba +#define FNAME_S(name) store_pixel_one_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2602,6 +2818,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_r000 +#define FNAME_S(name) store_pixel_one_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2611,6 +2828,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_0g00 +#define FNAME_S(name) store_pixel_one_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2620,6 +2838,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_rg00 +#define FNAME_S(name) store_pixel_one_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2638,6 +2857,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_r0b0 +#define FNAME_S(name) store_pixel_one_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2647,6 +2867,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_0gb0 +#define FNAME_S(name) store_pixel_one_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2656,6 +2877,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_rgb0 +#define FNAME_S(name) store_pixel_one_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2674,6 +2896,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_r00a +#define FNAME_S(name) store_pixel_one_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2683,6 +2906,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_0g0a +#define FNAME_S(name) store_pixel_one_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2692,6 +2916,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_rg0a +#define FNAME_S(name) store_pixel_one_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2710,6 +2935,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_r0ba +#define FNAME_S(name) store_pixel_one_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2719,6 +2945,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_0gba +#define FNAME_S(name) store_pixel_one_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2728,6 +2955,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_fcolor_rgba +#define FNAME_S(name) store_pixel_one_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2746,6 +2974,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_r000 +#define FNAME_S(name) store_pixel_one_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2755,6 +2984,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_0g00 +#define FNAME_S(name) store_pixel_one_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2764,6 +2994,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_rg00 +#define FNAME_S(name) store_pixel_one_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2782,6 +3013,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_one_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2791,6 +3023,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_one_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2800,6 +3033,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_one_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2818,6 +3052,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_r00a +#define FNAME_S(name) store_pixel_one_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2827,6 +3062,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_0g0a +#define FNAME_S(name) store_pixel_one_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2836,6 +3072,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_rg0a +#define FNAME_S(name) store_pixel_one_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2854,6 +3091,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_r0ba +#define FNAME_S(name) store_pixel_one_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2863,6 +3101,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_0gba +#define FNAME_S(name) store_pixel_one_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2872,6 +3111,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfcolor_rgba +#define FNAME_S(name) store_pixel_one_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2890,6 +3130,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_r000 +#define FNAME_S(name) store_pixel_one_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2899,6 +3140,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_0g00 +#define FNAME_S(name) store_pixel_one_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2908,6 +3150,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_rg00 +#define FNAME_S(name) store_pixel_one_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2926,6 +3169,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_r0b0 +#define FNAME_S(name) store_pixel_one_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2935,6 +3179,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_0gb0 +#define FNAME_S(name) store_pixel_one_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2944,6 +3189,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_rgb0 +#define FNAME_S(name) store_pixel_one_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2962,6 +3208,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_r00a +#define FNAME_S(name) store_pixel_one_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2971,6 +3218,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_0g0a +#define FNAME_S(name) store_pixel_one_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -2980,6 +3228,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_rg0a +#define FNAME_S(name) store_pixel_one_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -2998,6 +3247,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_r0ba +#define FNAME_S(name) store_pixel_one_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3007,6 +3257,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_0gba +#define FNAME_S(name) store_pixel_one_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3016,6 +3267,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ialpha_rgba +#define FNAME_S(name) store_pixel_one_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3034,6 +3286,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_r000 +#define FNAME_S(name) store_pixel_one_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3043,6 +3296,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_0g00 +#define FNAME_S(name) store_pixel_one_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3052,6 +3306,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_rg00 +#define FNAME_S(name) store_pixel_one_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3070,6 +3325,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_r0b0 +#define FNAME_S(name) store_pixel_one_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3079,6 +3335,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_0gb0 +#define FNAME_S(name) store_pixel_one_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3088,6 +3345,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_rgb0 +#define FNAME_S(name) store_pixel_one_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3106,6 +3364,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_r00a +#define FNAME_S(name) store_pixel_one_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3115,6 +3374,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_0g0a +#define FNAME_S(name) store_pixel_one_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3124,6 +3384,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_rg0a +#define FNAME_S(name) store_pixel_one_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3142,6 +3403,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_r0ba +#define FNAME_S(name) store_pixel_one_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3151,6 +3413,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_0gba +#define FNAME_S(name) store_pixel_one_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3160,6 +3423,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mialpha_rgba +#define FNAME_S(name) store_pixel_one_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3178,6 +3442,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_r000 +#define FNAME_S(name) store_pixel_one_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3187,6 +3452,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_0g00 +#define FNAME_S(name) store_pixel_one_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3196,6 +3462,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_rg00 +#define FNAME_S(name) store_pixel_one_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3214,6 +3481,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_r0b0 +#define FNAME_S(name) store_pixel_one_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3223,6 +3491,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_0gb0 +#define FNAME_S(name) store_pixel_one_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3232,6 +3501,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_rgb0 +#define FNAME_S(name) store_pixel_one_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3250,6 +3520,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_r00a +#define FNAME_S(name) store_pixel_one_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3259,6 +3530,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_0g0a +#define FNAME_S(name) store_pixel_one_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3268,6 +3540,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_rg0a +#define FNAME_S(name) store_pixel_one_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3286,6 +3559,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_r0ba +#define FNAME_S(name) store_pixel_one_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3295,6 +3569,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_0gba +#define FNAME_S(name) store_pixel_one_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3304,6 +3579,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_falpha_rgba +#define FNAME_S(name) store_pixel_one_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3322,6 +3598,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_r000 +#define FNAME_S(name) store_pixel_one_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3331,6 +3608,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_0g00 +#define FNAME_S(name) store_pixel_one_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3340,6 +3618,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_rg00 +#define FNAME_S(name) store_pixel_one_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3358,6 +3637,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_one_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3367,6 +3647,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_one_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3376,6 +3657,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_one_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3394,6 +3676,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_r00a +#define FNAME_S(name) store_pixel_one_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3403,6 +3686,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_0g0a +#define FNAME_S(name) store_pixel_one_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3412,6 +3696,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_rg0a +#define FNAME_S(name) store_pixel_one_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3430,6 +3715,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_r0ba +#define FNAME_S(name) store_pixel_one_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3439,6 +3725,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_0gba +#define FNAME_S(name) store_pixel_one_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3448,6 +3735,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mfalpha_rgba +#define FNAME_S(name) store_pixel_one_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3466,6 +3754,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_r000 +#define FNAME_S(name) store_pixel_one_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3475,6 +3764,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_0g00 +#define FNAME_S(name) store_pixel_one_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3484,6 +3774,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_rg00 +#define FNAME_S(name) store_pixel_one_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3502,6 +3793,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_r0b0 +#define FNAME_S(name) store_pixel_one_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3511,6 +3803,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_0gb0 +#define FNAME_S(name) store_pixel_one_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3520,6 +3813,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_rgb0 +#define FNAME_S(name) store_pixel_one_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3538,6 +3832,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_r00a +#define FNAME_S(name) store_pixel_one_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3547,6 +3842,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_0g0a +#define FNAME_S(name) store_pixel_one_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3556,6 +3852,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_rg0a +#define FNAME_S(name) store_pixel_one_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3574,6 +3871,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_r0ba +#define FNAME_S(name) store_pixel_one_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3583,6 +3881,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_0gba +#define FNAME_S(name) store_pixel_one_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3592,6 +3891,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_ccolor_rgba +#define FNAME_S(name) store_pixel_one_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3610,6 +3910,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_r000 +#define FNAME_S(name) store_pixel_one_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3619,6 +3920,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_0g00 +#define FNAME_S(name) store_pixel_one_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3628,6 +3930,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_rg00 +#define FNAME_S(name) store_pixel_one_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3646,6 +3949,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_r0b0 +#define FNAME_S(name) store_pixel_one_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3655,6 +3959,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_0gb0 +#define FNAME_S(name) store_pixel_one_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3664,6 +3969,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_rgb0 +#define FNAME_S(name) store_pixel_one_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3682,6 +3988,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_r00a +#define FNAME_S(name) store_pixel_one_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3691,6 +3998,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_0g0a +#define FNAME_S(name) store_pixel_one_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3700,6 +4008,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_rg0a +#define FNAME_S(name) store_pixel_one_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3718,6 +4027,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_r0ba +#define FNAME_S(name) store_pixel_one_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3727,6 +4037,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_0gba +#define FNAME_S(name) store_pixel_one_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3736,6 +4047,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mccolor_rgba +#define FNAME_S(name) store_pixel_one_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3754,6 +4066,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_r000 +#define FNAME_S(name) store_pixel_one_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3763,6 +4076,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_0g00 +#define FNAME_S(name) store_pixel_one_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3772,6 +4086,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_rg00 +#define FNAME_S(name) store_pixel_one_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3790,6 +4105,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_r0b0 +#define FNAME_S(name) store_pixel_one_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3799,6 +4115,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_0gb0 +#define FNAME_S(name) store_pixel_one_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3808,6 +4125,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_rgb0 +#define FNAME_S(name) store_pixel_one_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3826,6 +4144,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_r00a +#define FNAME_S(name) store_pixel_one_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3835,6 +4154,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_0g0a +#define FNAME_S(name) store_pixel_one_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3844,6 +4164,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_rg0a +#define FNAME_S(name) store_pixel_one_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3862,6 +4183,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_r0ba +#define FNAME_S(name) store_pixel_one_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3871,6 +4193,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_0gba +#define FNAME_S(name) store_pixel_one_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3880,6 +4203,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_calpha_rgba +#define FNAME_S(name) store_pixel_one_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3898,6 +4222,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_r000 +#define FNAME_S(name) store_pixel_one_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3907,6 +4232,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_0g00 +#define FNAME_S(name) store_pixel_one_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3916,6 +4242,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_rg00 +#define FNAME_S(name) store_pixel_one_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3934,6 +4261,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_one_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3943,6 +4271,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_one_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3952,6 +4281,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_one_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3970,6 +4300,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_r00a +#define FNAME_S(name) store_pixel_one_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -3979,6 +4310,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_0g0a +#define FNAME_S(name) store_pixel_one_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -3988,6 +4320,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_rg0a +#define FNAME_S(name) store_pixel_one_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4006,6 +4339,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_r0ba +#define FNAME_S(name) store_pixel_one_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4015,6 +4349,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_0gba +#define FNAME_S(name) store_pixel_one_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4024,6 +4359,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_one_mcalpha_rgba +#define FNAME_S(name) store_pixel_one_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0x10000)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4042,6 +4378,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_r000 +#define FNAME_S(name) store_pixel_icolor_zero_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4051,6 +4388,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_0g00 +#define FNAME_S(name) store_pixel_icolor_zero_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4060,6 +4398,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_rg00 +#define FNAME_S(name) store_pixel_icolor_zero_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4078,6 +4417,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_r0b0 +#define FNAME_S(name) store_pixel_icolor_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4087,6 +4427,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_0gb0 +#define FNAME_S(name) store_pixel_icolor_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4096,6 +4437,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_rgb0 +#define FNAME_S(name) store_pixel_icolor_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4114,6 +4456,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_r00a +#define FNAME_S(name) store_pixel_icolor_zero_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4123,6 +4466,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_0g0a +#define FNAME_S(name) store_pixel_icolor_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4132,6 +4476,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_rg0a +#define FNAME_S(name) store_pixel_icolor_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4150,6 +4495,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_r0ba +#define FNAME_S(name) store_pixel_icolor_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4159,6 +4505,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_0gba +#define FNAME_S(name) store_pixel_icolor_zero_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4168,6 +4515,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_zero_rgba +#define FNAME_S(name) store_pixel_icolor_zero_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4186,6 +4534,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_r000 +#define FNAME_S(name) store_pixel_icolor_one_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4195,6 +4544,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_0g00 +#define FNAME_S(name) store_pixel_icolor_one_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4204,6 +4554,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_rg00 +#define FNAME_S(name) store_pixel_icolor_one_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4222,6 +4573,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_r0b0 +#define FNAME_S(name) store_pixel_icolor_one_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4231,6 +4583,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_0gb0 +#define FNAME_S(name) store_pixel_icolor_one_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4240,6 +4593,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_rgb0 +#define FNAME_S(name) store_pixel_icolor_one_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4258,6 +4612,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_r00a +#define FNAME_S(name) store_pixel_icolor_one_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4267,6 +4622,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_0g0a +#define FNAME_S(name) store_pixel_icolor_one_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4276,6 +4632,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_rg0a +#define FNAME_S(name) store_pixel_icolor_one_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4294,6 +4651,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_r0ba +#define FNAME_S(name) store_pixel_icolor_one_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4303,6 +4661,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_0gba +#define FNAME_S(name) store_pixel_icolor_one_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4312,6 +4671,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_one_rgba +#define FNAME_S(name) store_pixel_icolor_one_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4330,6 +4690,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_r000 +#define FNAME_S(name) store_pixel_icolor_icolor_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4339,6 +4700,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_0g00 +#define FNAME_S(name) store_pixel_icolor_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4348,6 +4710,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_rg00 +#define FNAME_S(name) store_pixel_icolor_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4366,6 +4729,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_r0b0 +#define FNAME_S(name) store_pixel_icolor_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4375,6 +4739,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_0gb0 +#define FNAME_S(name) store_pixel_icolor_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4384,6 +4749,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_rgb0 +#define FNAME_S(name) store_pixel_icolor_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4402,6 +4768,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_r00a +#define FNAME_S(name) store_pixel_icolor_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4411,6 +4778,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_0g0a +#define FNAME_S(name) store_pixel_icolor_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4420,6 +4788,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_rg0a +#define FNAME_S(name) store_pixel_icolor_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4438,6 +4807,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_r0ba +#define FNAME_S(name) store_pixel_icolor_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4447,6 +4817,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_0gba +#define FNAME_S(name) store_pixel_icolor_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4456,6 +4827,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_icolor_rgba +#define FNAME_S(name) store_pixel_icolor_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4474,6 +4846,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_r000 +#define FNAME_S(name) store_pixel_icolor_micolor_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4483,6 +4856,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_0g00 +#define FNAME_S(name) store_pixel_icolor_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4492,6 +4866,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_rg00 +#define FNAME_S(name) store_pixel_icolor_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4510,6 +4885,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_r0b0 +#define FNAME_S(name) store_pixel_icolor_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4519,6 +4895,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_0gb0 +#define FNAME_S(name) store_pixel_icolor_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4528,6 +4905,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_rgb0 +#define FNAME_S(name) store_pixel_icolor_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4546,6 +4924,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_r00a +#define FNAME_S(name) store_pixel_icolor_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4555,6 +4934,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_0g0a +#define FNAME_S(name) store_pixel_icolor_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4564,6 +4944,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_rg0a +#define FNAME_S(name) store_pixel_icolor_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4582,6 +4963,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_r0ba +#define FNAME_S(name) store_pixel_icolor_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4591,6 +4973,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_0gba +#define FNAME_S(name) store_pixel_icolor_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4600,6 +4983,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_micolor_rgba +#define FNAME_S(name) store_pixel_icolor_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4618,6 +5002,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_r000 +#define FNAME_S(name) store_pixel_icolor_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4627,6 +5012,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_0g00 +#define FNAME_S(name) store_pixel_icolor_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4636,6 +5022,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_rg00 +#define FNAME_S(name) store_pixel_icolor_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4654,6 +5041,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_r0b0 +#define FNAME_S(name) store_pixel_icolor_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4663,6 +5051,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_0gb0 +#define FNAME_S(name) store_pixel_icolor_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4672,6 +5061,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_rgb0 +#define FNAME_S(name) store_pixel_icolor_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4690,6 +5080,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_r00a +#define FNAME_S(name) store_pixel_icolor_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4699,6 +5090,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_0g0a +#define FNAME_S(name) store_pixel_icolor_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4708,6 +5100,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_rg0a +#define FNAME_S(name) store_pixel_icolor_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4726,6 +5119,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_r0ba +#define FNAME_S(name) store_pixel_icolor_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4735,6 +5129,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_0gba +#define FNAME_S(name) store_pixel_icolor_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4744,6 +5139,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_fcolor_rgba +#define FNAME_S(name) store_pixel_icolor_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4762,6 +5158,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_r000 +#define FNAME_S(name) store_pixel_icolor_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4771,6 +5168,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_0g00 +#define FNAME_S(name) store_pixel_icolor_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4780,6 +5178,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_rg00 +#define FNAME_S(name) store_pixel_icolor_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4798,6 +5197,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_icolor_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4807,6 +5207,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_icolor_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4816,6 +5217,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_icolor_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4834,6 +5236,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_r00a +#define FNAME_S(name) store_pixel_icolor_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4843,6 +5246,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_0g0a +#define FNAME_S(name) store_pixel_icolor_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4852,6 +5256,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_rg0a +#define FNAME_S(name) store_pixel_icolor_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4870,6 +5275,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_r0ba +#define FNAME_S(name) store_pixel_icolor_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4879,6 +5285,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_0gba +#define FNAME_S(name) store_pixel_icolor_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4888,6 +5295,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfcolor_rgba +#define FNAME_S(name) store_pixel_icolor_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4906,6 +5314,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_r000 +#define FNAME_S(name) store_pixel_icolor_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4915,6 +5324,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_0g00 +#define FNAME_S(name) store_pixel_icolor_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4924,6 +5334,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_rg00 +#define FNAME_S(name) store_pixel_icolor_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4942,6 +5353,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_r0b0 +#define FNAME_S(name) store_pixel_icolor_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4951,6 +5363,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_0gb0 +#define FNAME_S(name) store_pixel_icolor_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4960,6 +5373,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_rgb0 +#define FNAME_S(name) store_pixel_icolor_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4978,6 +5392,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_r00a +#define FNAME_S(name) store_pixel_icolor_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -4987,6 +5402,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_0g0a +#define FNAME_S(name) store_pixel_icolor_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -4996,6 +5412,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_rg0a +#define FNAME_S(name) store_pixel_icolor_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5014,6 +5431,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_r0ba +#define FNAME_S(name) store_pixel_icolor_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5023,6 +5441,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_0gba +#define FNAME_S(name) store_pixel_icolor_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5032,6 +5451,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ialpha_rgba +#define FNAME_S(name) store_pixel_icolor_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5050,6 +5470,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_r000 +#define FNAME_S(name) store_pixel_icolor_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5059,6 +5480,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_0g00 +#define FNAME_S(name) store_pixel_icolor_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5068,6 +5490,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_rg00 +#define FNAME_S(name) store_pixel_icolor_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5086,6 +5509,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_r0b0 +#define FNAME_S(name) store_pixel_icolor_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5095,6 +5519,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_0gb0 +#define FNAME_S(name) store_pixel_icolor_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5104,6 +5529,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_rgb0 +#define FNAME_S(name) store_pixel_icolor_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5122,6 +5548,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_r00a +#define FNAME_S(name) store_pixel_icolor_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5131,6 +5558,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_0g0a +#define FNAME_S(name) store_pixel_icolor_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5140,6 +5568,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_rg0a +#define FNAME_S(name) store_pixel_icolor_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5158,6 +5587,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_r0ba +#define FNAME_S(name) store_pixel_icolor_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5167,6 +5597,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_0gba +#define FNAME_S(name) store_pixel_icolor_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5176,6 +5607,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mialpha_rgba +#define FNAME_S(name) store_pixel_icolor_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5194,6 +5626,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_r000 +#define FNAME_S(name) store_pixel_icolor_falpha_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5203,6 +5636,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_0g00 +#define FNAME_S(name) store_pixel_icolor_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5212,6 +5646,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_rg00 +#define FNAME_S(name) store_pixel_icolor_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5230,6 +5665,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_r0b0 +#define FNAME_S(name) store_pixel_icolor_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5239,6 +5675,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_0gb0 +#define FNAME_S(name) store_pixel_icolor_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5248,6 +5685,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_rgb0 +#define FNAME_S(name) store_pixel_icolor_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5266,6 +5704,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_r00a +#define FNAME_S(name) store_pixel_icolor_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5275,6 +5714,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_0g0a +#define FNAME_S(name) store_pixel_icolor_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5284,6 +5724,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_rg0a +#define FNAME_S(name) store_pixel_icolor_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5302,6 +5743,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_r0ba +#define FNAME_S(name) store_pixel_icolor_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5311,6 +5753,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_0gba +#define FNAME_S(name) store_pixel_icolor_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5320,6 +5763,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_falpha_rgba +#define FNAME_S(name) store_pixel_icolor_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5338,6 +5782,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_r000 +#define FNAME_S(name) store_pixel_icolor_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5347,6 +5792,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_0g00 +#define FNAME_S(name) store_pixel_icolor_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5356,6 +5802,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_rg00 +#define FNAME_S(name) store_pixel_icolor_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5374,6 +5821,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_icolor_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5383,6 +5831,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_icolor_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5392,6 +5841,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_icolor_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5410,6 +5860,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_r00a +#define FNAME_S(name) store_pixel_icolor_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5419,6 +5870,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_0g0a +#define FNAME_S(name) store_pixel_icolor_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5428,6 +5880,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_rg0a +#define FNAME_S(name) store_pixel_icolor_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5446,6 +5899,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_r0ba +#define FNAME_S(name) store_pixel_icolor_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5455,6 +5909,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_0gba +#define FNAME_S(name) store_pixel_icolor_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5464,6 +5919,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mfalpha_rgba +#define FNAME_S(name) store_pixel_icolor_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5482,6 +5938,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_r000 +#define FNAME_S(name) store_pixel_icolor_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5491,6 +5948,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_0g00 +#define FNAME_S(name) store_pixel_icolor_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5500,6 +5958,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_rg00 +#define FNAME_S(name) store_pixel_icolor_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5518,6 +5977,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_r0b0 +#define FNAME_S(name) store_pixel_icolor_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5527,6 +5987,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_0gb0 +#define FNAME_S(name) store_pixel_icolor_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5536,6 +5997,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_rgb0 +#define FNAME_S(name) store_pixel_icolor_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5554,6 +6016,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_r00a +#define FNAME_S(name) store_pixel_icolor_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5563,6 +6026,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_0g0a +#define FNAME_S(name) store_pixel_icolor_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5572,6 +6036,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_rg0a +#define FNAME_S(name) store_pixel_icolor_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5590,6 +6055,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_r0ba +#define FNAME_S(name) store_pixel_icolor_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5599,6 +6065,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_0gba +#define FNAME_S(name) store_pixel_icolor_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5608,6 +6075,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_ccolor_rgba +#define FNAME_S(name) store_pixel_icolor_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5626,6 +6094,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_r000 +#define FNAME_S(name) store_pixel_icolor_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5635,6 +6104,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_0g00 +#define FNAME_S(name) store_pixel_icolor_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5644,6 +6114,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_rg00 +#define FNAME_S(name) store_pixel_icolor_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5662,6 +6133,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_r0b0 +#define FNAME_S(name) store_pixel_icolor_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5671,6 +6143,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_0gb0 +#define FNAME_S(name) store_pixel_icolor_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5680,6 +6153,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_rgb0 +#define FNAME_S(name) store_pixel_icolor_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5698,6 +6172,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_r00a +#define FNAME_S(name) store_pixel_icolor_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5707,6 +6182,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_0g0a +#define FNAME_S(name) store_pixel_icolor_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5716,6 +6192,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_rg0a +#define FNAME_S(name) store_pixel_icolor_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5734,6 +6211,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_r0ba +#define FNAME_S(name) store_pixel_icolor_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5743,6 +6221,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_0gba +#define FNAME_S(name) store_pixel_icolor_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5752,6 +6231,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mccolor_rgba +#define FNAME_S(name) store_pixel_icolor_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5770,6 +6250,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_r000 +#define FNAME_S(name) store_pixel_icolor_calpha_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5779,6 +6260,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_0g00 +#define FNAME_S(name) store_pixel_icolor_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5788,6 +6270,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_rg00 +#define FNAME_S(name) store_pixel_icolor_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5806,6 +6289,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_r0b0 +#define FNAME_S(name) store_pixel_icolor_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5815,6 +6299,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_0gb0 +#define FNAME_S(name) store_pixel_icolor_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5824,6 +6309,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_rgb0 +#define FNAME_S(name) store_pixel_icolor_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5842,6 +6328,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_r00a +#define FNAME_S(name) store_pixel_icolor_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5851,6 +6338,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_0g0a +#define FNAME_S(name) store_pixel_icolor_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5860,6 +6348,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_rg0a +#define FNAME_S(name) store_pixel_icolor_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5878,6 +6367,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_r0ba +#define FNAME_S(name) store_pixel_icolor_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5887,6 +6377,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_0gba +#define FNAME_S(name) store_pixel_icolor_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5896,6 +6387,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_calpha_rgba +#define FNAME_S(name) store_pixel_icolor_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5914,6 +6406,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_r000 +#define FNAME_S(name) store_pixel_icolor_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5923,6 +6416,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_0g00 +#define FNAME_S(name) store_pixel_icolor_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5932,6 +6426,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_rg00 +#define FNAME_S(name) store_pixel_icolor_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5950,6 +6445,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_icolor_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5959,6 +6455,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_icolor_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -5968,6 +6465,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_icolor_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5986,6 +6484,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_r00a +#define FNAME_S(name) store_pixel_icolor_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -5995,6 +6494,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_0g0a +#define FNAME_S(name) store_pixel_icolor_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6004,6 +6504,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_rg0a +#define FNAME_S(name) store_pixel_icolor_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6022,6 +6523,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_r0ba +#define FNAME_S(name) store_pixel_icolor_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6031,6 +6533,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_0gba +#define FNAME_S(name) store_pixel_icolor_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6040,6 +6543,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_icolor_mcalpha_rgba +#define FNAME_S(name) store_pixel_icolor_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6058,6 +6562,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_r000 +#define FNAME_S(name) store_pixel_micolor_zero_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6067,6 +6572,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_0g00 +#define FNAME_S(name) store_pixel_micolor_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6076,6 +6582,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_rg00 +#define FNAME_S(name) store_pixel_micolor_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6094,6 +6601,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_r0b0 +#define FNAME_S(name) store_pixel_micolor_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6103,6 +6611,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_0gb0 +#define FNAME_S(name) store_pixel_micolor_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6112,6 +6621,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_rgb0 +#define FNAME_S(name) store_pixel_micolor_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6130,6 +6640,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_r00a +#define FNAME_S(name) store_pixel_micolor_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6139,6 +6650,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_0g0a +#define FNAME_S(name) store_pixel_micolor_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6148,6 +6660,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_rg0a +#define FNAME_S(name) store_pixel_micolor_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6166,6 +6679,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_r0ba +#define FNAME_S(name) store_pixel_micolor_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6175,6 +6689,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_0gba +#define FNAME_S(name) store_pixel_micolor_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6184,6 +6699,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_zero_rgba +#define FNAME_S(name) store_pixel_micolor_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6202,6 +6718,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_r000 +#define FNAME_S(name) store_pixel_micolor_one_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6211,6 +6728,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_0g00 +#define FNAME_S(name) store_pixel_micolor_one_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6220,6 +6738,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_rg00 +#define FNAME_S(name) store_pixel_micolor_one_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6238,6 +6757,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_r0b0 +#define FNAME_S(name) store_pixel_micolor_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6247,6 +6767,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_0gb0 +#define FNAME_S(name) store_pixel_micolor_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6256,6 +6777,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_rgb0 +#define FNAME_S(name) store_pixel_micolor_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6274,6 +6796,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_r00a +#define FNAME_S(name) store_pixel_micolor_one_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6283,6 +6806,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_0g0a +#define FNAME_S(name) store_pixel_micolor_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6292,6 +6816,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_rg0a +#define FNAME_S(name) store_pixel_micolor_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6310,6 +6835,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_r0ba +#define FNAME_S(name) store_pixel_micolor_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6319,6 +6845,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_0gba +#define FNAME_S(name) store_pixel_micolor_one_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6328,6 +6855,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_one_rgba +#define FNAME_S(name) store_pixel_micolor_one_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6346,6 +6874,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_r000 +#define FNAME_S(name) store_pixel_micolor_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6355,6 +6884,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_0g00 +#define FNAME_S(name) store_pixel_micolor_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6364,6 +6894,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_rg00 +#define FNAME_S(name) store_pixel_micolor_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6382,6 +6913,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_r0b0 +#define FNAME_S(name) store_pixel_micolor_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6391,6 +6923,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_0gb0 +#define FNAME_S(name) store_pixel_micolor_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6400,6 +6933,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_rgb0 +#define FNAME_S(name) store_pixel_micolor_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6418,6 +6952,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_r00a +#define FNAME_S(name) store_pixel_micolor_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6427,6 +6962,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_0g0a +#define FNAME_S(name) store_pixel_micolor_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6436,6 +6972,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_rg0a +#define FNAME_S(name) store_pixel_micolor_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6454,6 +6991,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_r0ba +#define FNAME_S(name) store_pixel_micolor_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6463,6 +7001,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_0gba +#define FNAME_S(name) store_pixel_micolor_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6472,6 +7011,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_icolor_rgba +#define FNAME_S(name) store_pixel_micolor_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6490,6 +7030,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_r000 +#define FNAME_S(name) store_pixel_micolor_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6499,6 +7040,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_0g00 +#define FNAME_S(name) store_pixel_micolor_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6508,6 +7050,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_rg00 +#define FNAME_S(name) store_pixel_micolor_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6526,6 +7069,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_r0b0 +#define FNAME_S(name) store_pixel_micolor_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6535,6 +7079,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_0gb0 +#define FNAME_S(name) store_pixel_micolor_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6544,6 +7089,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_rgb0 +#define FNAME_S(name) store_pixel_micolor_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6562,6 +7108,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_r00a +#define FNAME_S(name) store_pixel_micolor_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6571,6 +7118,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_0g0a +#define FNAME_S(name) store_pixel_micolor_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6580,6 +7128,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_rg0a +#define FNAME_S(name) store_pixel_micolor_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6598,6 +7147,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_r0ba +#define FNAME_S(name) store_pixel_micolor_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6607,6 +7157,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_0gba +#define FNAME_S(name) store_pixel_micolor_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6616,6 +7167,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_micolor_rgba +#define FNAME_S(name) store_pixel_micolor_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6634,6 +7186,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_r000 +#define FNAME_S(name) store_pixel_micolor_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6643,6 +7196,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_0g00 +#define FNAME_S(name) store_pixel_micolor_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6652,6 +7206,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_rg00 +#define FNAME_S(name) store_pixel_micolor_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6670,6 +7225,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_r0b0 +#define FNAME_S(name) store_pixel_micolor_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6679,6 +7235,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_0gb0 +#define FNAME_S(name) store_pixel_micolor_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6688,6 +7245,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_rgb0 +#define FNAME_S(name) store_pixel_micolor_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6706,6 +7264,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_r00a +#define FNAME_S(name) store_pixel_micolor_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6715,6 +7274,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_0g0a +#define FNAME_S(name) store_pixel_micolor_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6724,6 +7284,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_rg0a +#define FNAME_S(name) store_pixel_micolor_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6742,6 +7303,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_r0ba +#define FNAME_S(name) store_pixel_micolor_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6751,6 +7313,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_0gba +#define FNAME_S(name) store_pixel_micolor_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6760,6 +7323,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_fcolor_rgba +#define FNAME_S(name) store_pixel_micolor_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6778,6 +7342,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_r000 +#define FNAME_S(name) store_pixel_micolor_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6787,6 +7352,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_0g00 +#define FNAME_S(name) store_pixel_micolor_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6796,6 +7362,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_rg00 +#define FNAME_S(name) store_pixel_micolor_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6814,6 +7381,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_micolor_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6823,6 +7391,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_micolor_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6832,6 +7401,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_micolor_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6850,6 +7420,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_r00a +#define FNAME_S(name) store_pixel_micolor_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6859,6 +7430,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_0g0a +#define FNAME_S(name) store_pixel_micolor_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6868,6 +7440,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_rg0a +#define FNAME_S(name) store_pixel_micolor_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6886,6 +7459,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_r0ba +#define FNAME_S(name) store_pixel_micolor_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6895,6 +7469,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_0gba +#define FNAME_S(name) store_pixel_micolor_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6904,6 +7479,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfcolor_rgba +#define FNAME_S(name) store_pixel_micolor_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6922,6 +7498,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_r000 +#define FNAME_S(name) store_pixel_micolor_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6931,6 +7508,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_0g00 +#define FNAME_S(name) store_pixel_micolor_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6940,6 +7518,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_rg00 +#define FNAME_S(name) store_pixel_micolor_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6958,6 +7537,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_r0b0 +#define FNAME_S(name) store_pixel_micolor_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6967,6 +7547,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_0gb0 +#define FNAME_S(name) store_pixel_micolor_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -6976,6 +7557,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_rgb0 +#define FNAME_S(name) store_pixel_micolor_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -6994,6 +7576,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_r00a +#define FNAME_S(name) store_pixel_micolor_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7003,6 +7586,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_0g0a +#define FNAME_S(name) store_pixel_micolor_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7012,6 +7596,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_rg0a +#define FNAME_S(name) store_pixel_micolor_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7030,6 +7615,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_r0ba +#define FNAME_S(name) store_pixel_micolor_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7039,6 +7625,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_0gba +#define FNAME_S(name) store_pixel_micolor_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7048,6 +7635,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ialpha_rgba +#define FNAME_S(name) store_pixel_micolor_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7066,6 +7654,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_r000 +#define FNAME_S(name) store_pixel_micolor_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7075,6 +7664,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_0g00 +#define FNAME_S(name) store_pixel_micolor_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7084,6 +7674,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_rg00 +#define FNAME_S(name) store_pixel_micolor_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7102,6 +7693,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_r0b0 +#define FNAME_S(name) store_pixel_micolor_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7111,6 +7703,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_0gb0 +#define FNAME_S(name) store_pixel_micolor_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7120,6 +7713,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_rgb0 +#define FNAME_S(name) store_pixel_micolor_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7138,6 +7732,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_r00a +#define FNAME_S(name) store_pixel_micolor_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7147,6 +7742,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_0g0a +#define FNAME_S(name) store_pixel_micolor_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7156,6 +7752,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_rg0a +#define FNAME_S(name) store_pixel_micolor_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7174,6 +7771,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_r0ba +#define FNAME_S(name) store_pixel_micolor_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7183,6 +7781,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_0gba +#define FNAME_S(name) store_pixel_micolor_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7192,6 +7791,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mialpha_rgba +#define FNAME_S(name) store_pixel_micolor_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7210,6 +7810,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_r000 +#define FNAME_S(name) store_pixel_micolor_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7219,6 +7820,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_0g00 +#define FNAME_S(name) store_pixel_micolor_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7228,6 +7830,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_rg00 +#define FNAME_S(name) store_pixel_micolor_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7246,6 +7849,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_r0b0 +#define FNAME_S(name) store_pixel_micolor_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7255,6 +7859,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_0gb0 +#define FNAME_S(name) store_pixel_micolor_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7264,6 +7869,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_rgb0 +#define FNAME_S(name) store_pixel_micolor_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7282,6 +7888,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_r00a +#define FNAME_S(name) store_pixel_micolor_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7291,6 +7898,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_0g0a +#define FNAME_S(name) store_pixel_micolor_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7300,6 +7908,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_rg0a +#define FNAME_S(name) store_pixel_micolor_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7318,6 +7927,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_r0ba +#define FNAME_S(name) store_pixel_micolor_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7327,6 +7937,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_0gba +#define FNAME_S(name) store_pixel_micolor_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7336,6 +7947,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_falpha_rgba +#define FNAME_S(name) store_pixel_micolor_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7354,6 +7966,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_r000 +#define FNAME_S(name) store_pixel_micolor_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7363,6 +7976,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_0g00 +#define FNAME_S(name) store_pixel_micolor_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7372,6 +7986,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_rg00 +#define FNAME_S(name) store_pixel_micolor_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7390,6 +8005,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_micolor_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7399,6 +8015,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_micolor_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7408,6 +8025,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_micolor_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7426,6 +8044,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_r00a +#define FNAME_S(name) store_pixel_micolor_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7435,6 +8054,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_0g0a +#define FNAME_S(name) store_pixel_micolor_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7444,6 +8064,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_rg0a +#define FNAME_S(name) store_pixel_micolor_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7462,6 +8083,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_r0ba +#define FNAME_S(name) store_pixel_micolor_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7471,6 +8093,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_0gba +#define FNAME_S(name) store_pixel_micolor_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7480,6 +8103,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mfalpha_rgba +#define FNAME_S(name) store_pixel_micolor_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7498,6 +8122,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_r000 +#define FNAME_S(name) store_pixel_micolor_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7507,6 +8132,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_0g00 +#define FNAME_S(name) store_pixel_micolor_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7516,6 +8142,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_rg00 +#define FNAME_S(name) store_pixel_micolor_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7534,6 +8161,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_r0b0 +#define FNAME_S(name) store_pixel_micolor_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7543,6 +8171,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_0gb0 +#define FNAME_S(name) store_pixel_micolor_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7552,6 +8181,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_rgb0 +#define FNAME_S(name) store_pixel_micolor_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7570,6 +8200,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_r00a +#define FNAME_S(name) store_pixel_micolor_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7579,6 +8210,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_0g0a +#define FNAME_S(name) store_pixel_micolor_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7588,6 +8220,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_rg0a +#define FNAME_S(name) store_pixel_micolor_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7606,6 +8239,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_r0ba +#define FNAME_S(name) store_pixel_micolor_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7615,6 +8249,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_0gba +#define FNAME_S(name) store_pixel_micolor_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7624,6 +8259,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_ccolor_rgba +#define FNAME_S(name) store_pixel_micolor_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7642,6 +8278,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_r000 +#define FNAME_S(name) store_pixel_micolor_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7651,6 +8288,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_0g00 +#define FNAME_S(name) store_pixel_micolor_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7660,6 +8298,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_rg00 +#define FNAME_S(name) store_pixel_micolor_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7678,6 +8317,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_r0b0 +#define FNAME_S(name) store_pixel_micolor_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7687,6 +8327,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_0gb0 +#define FNAME_S(name) store_pixel_micolor_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7696,6 +8337,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_rgb0 +#define FNAME_S(name) store_pixel_micolor_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7714,6 +8356,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_r00a +#define FNAME_S(name) store_pixel_micolor_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7723,6 +8366,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_0g0a +#define FNAME_S(name) store_pixel_micolor_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7732,6 +8376,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_rg0a +#define FNAME_S(name) store_pixel_micolor_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7750,6 +8395,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_r0ba +#define FNAME_S(name) store_pixel_micolor_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7759,6 +8405,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_0gba +#define FNAME_S(name) store_pixel_micolor_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7768,6 +8415,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mccolor_rgba +#define FNAME_S(name) store_pixel_micolor_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7786,6 +8434,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_r000 +#define FNAME_S(name) store_pixel_micolor_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7795,6 +8444,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_0g00 +#define FNAME_S(name) store_pixel_micolor_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7804,6 +8454,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_rg00 +#define FNAME_S(name) store_pixel_micolor_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7822,6 +8473,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_r0b0 +#define FNAME_S(name) store_pixel_micolor_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7831,6 +8483,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_0gb0 +#define FNAME_S(name) store_pixel_micolor_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7840,6 +8493,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_rgb0 +#define FNAME_S(name) store_pixel_micolor_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7858,6 +8512,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_r00a +#define FNAME_S(name) store_pixel_micolor_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7867,6 +8522,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_0g0a +#define FNAME_S(name) store_pixel_micolor_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7876,6 +8532,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_rg0a +#define FNAME_S(name) store_pixel_micolor_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7894,6 +8551,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_r0ba +#define FNAME_S(name) store_pixel_micolor_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7903,6 +8561,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_0gba +#define FNAME_S(name) store_pixel_micolor_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7912,6 +8571,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_calpha_rgba +#define FNAME_S(name) store_pixel_micolor_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7930,6 +8590,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_r000 +#define FNAME_S(name) store_pixel_micolor_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7939,6 +8600,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_0g00 +#define FNAME_S(name) store_pixel_micolor_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7948,6 +8610,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_rg00 +#define FNAME_S(name) store_pixel_micolor_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7966,6 +8629,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_micolor_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -7975,6 +8639,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_micolor_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -7984,6 +8649,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_micolor_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8002,6 +8668,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_r00a +#define FNAME_S(name) store_pixel_micolor_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8011,6 +8678,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_0g0a +#define FNAME_S(name) store_pixel_micolor_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8020,6 +8688,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_rg0a +#define FNAME_S(name) store_pixel_micolor_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8038,6 +8707,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_r0ba +#define FNAME_S(name) store_pixel_micolor_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8047,6 +8717,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_0gba +#define FNAME_S(name) store_pixel_micolor_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8056,6 +8727,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_micolor_mcalpha_rgba +#define FNAME_S(name) store_pixel_micolor_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8074,6 +8746,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_r000 +#define FNAME_S(name) store_pixel_fcolor_zero_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8083,6 +8756,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_0g00 +#define FNAME_S(name) store_pixel_fcolor_zero_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8092,6 +8766,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_rg00 +#define FNAME_S(name) store_pixel_fcolor_zero_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8110,6 +8785,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_r0b0 +#define FNAME_S(name) store_pixel_fcolor_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8119,6 +8795,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_0gb0 +#define FNAME_S(name) store_pixel_fcolor_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8128,6 +8805,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_rgb0 +#define FNAME_S(name) store_pixel_fcolor_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8146,6 +8824,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_r00a +#define FNAME_S(name) store_pixel_fcolor_zero_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8155,6 +8834,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_0g0a +#define FNAME_S(name) store_pixel_fcolor_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8164,6 +8844,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_rg0a +#define FNAME_S(name) store_pixel_fcolor_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8182,6 +8863,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_r0ba +#define FNAME_S(name) store_pixel_fcolor_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8191,6 +8873,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_0gba +#define FNAME_S(name) store_pixel_fcolor_zero_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8200,6 +8883,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_zero_rgba +#define FNAME_S(name) store_pixel_fcolor_zero_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8218,6 +8902,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_r000 +#define FNAME_S(name) store_pixel_fcolor_one_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8227,6 +8912,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_0g00 +#define FNAME_S(name) store_pixel_fcolor_one_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8236,6 +8922,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_rg00 +#define FNAME_S(name) store_pixel_fcolor_one_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8254,6 +8941,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_r0b0 +#define FNAME_S(name) store_pixel_fcolor_one_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8263,6 +8951,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_0gb0 +#define FNAME_S(name) store_pixel_fcolor_one_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8272,6 +8961,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_rgb0 +#define FNAME_S(name) store_pixel_fcolor_one_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8290,6 +8980,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_r00a +#define FNAME_S(name) store_pixel_fcolor_one_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8299,6 +8990,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_0g0a +#define FNAME_S(name) store_pixel_fcolor_one_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8308,6 +9000,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_rg0a +#define FNAME_S(name) store_pixel_fcolor_one_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8326,6 +9019,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_r0ba +#define FNAME_S(name) store_pixel_fcolor_one_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8335,6 +9029,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_0gba +#define FNAME_S(name) store_pixel_fcolor_one_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8344,6 +9039,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_one_rgba +#define FNAME_S(name) store_pixel_fcolor_one_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8362,6 +9058,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_r000 +#define FNAME_S(name) store_pixel_fcolor_icolor_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8371,6 +9068,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_0g00 +#define FNAME_S(name) store_pixel_fcolor_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8380,6 +9078,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_rg00 +#define FNAME_S(name) store_pixel_fcolor_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8398,6 +9097,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_r0b0 +#define FNAME_S(name) store_pixel_fcolor_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8407,6 +9107,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_0gb0 +#define FNAME_S(name) store_pixel_fcolor_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8416,6 +9117,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_rgb0 +#define FNAME_S(name) store_pixel_fcolor_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8434,6 +9136,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_r00a +#define FNAME_S(name) store_pixel_fcolor_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8443,6 +9146,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_0g0a +#define FNAME_S(name) store_pixel_fcolor_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8452,6 +9156,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_rg0a +#define FNAME_S(name) store_pixel_fcolor_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8470,6 +9175,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_r0ba +#define FNAME_S(name) store_pixel_fcolor_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8479,6 +9185,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_0gba +#define FNAME_S(name) store_pixel_fcolor_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8488,6 +9195,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_icolor_rgba +#define FNAME_S(name) store_pixel_fcolor_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8506,6 +9214,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_r000 +#define FNAME_S(name) store_pixel_fcolor_micolor_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8515,6 +9224,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_0g00 +#define FNAME_S(name) store_pixel_fcolor_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8524,6 +9234,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_rg00 +#define FNAME_S(name) store_pixel_fcolor_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8542,6 +9253,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_r0b0 +#define FNAME_S(name) store_pixel_fcolor_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8551,6 +9263,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_0gb0 +#define FNAME_S(name) store_pixel_fcolor_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8560,6 +9273,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_rgb0 +#define FNAME_S(name) store_pixel_fcolor_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8578,6 +9292,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_r00a +#define FNAME_S(name) store_pixel_fcolor_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8587,6 +9302,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_0g0a +#define FNAME_S(name) store_pixel_fcolor_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8596,6 +9312,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_rg0a +#define FNAME_S(name) store_pixel_fcolor_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8614,6 +9331,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_r0ba +#define FNAME_S(name) store_pixel_fcolor_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8623,6 +9341,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_0gba +#define FNAME_S(name) store_pixel_fcolor_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8632,6 +9351,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_micolor_rgba +#define FNAME_S(name) store_pixel_fcolor_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8650,6 +9370,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_r000 +#define FNAME_S(name) store_pixel_fcolor_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8659,6 +9380,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_0g00 +#define FNAME_S(name) store_pixel_fcolor_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8668,6 +9390,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_rg00 +#define FNAME_S(name) store_pixel_fcolor_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8686,6 +9409,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_r0b0 +#define FNAME_S(name) store_pixel_fcolor_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8695,6 +9419,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_0gb0 +#define FNAME_S(name) store_pixel_fcolor_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8704,6 +9429,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_rgb0 +#define FNAME_S(name) store_pixel_fcolor_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8722,6 +9448,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_r00a +#define FNAME_S(name) store_pixel_fcolor_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8731,6 +9458,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_0g0a +#define FNAME_S(name) store_pixel_fcolor_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8740,6 +9468,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_rg0a +#define FNAME_S(name) store_pixel_fcolor_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8758,6 +9487,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_r0ba +#define FNAME_S(name) store_pixel_fcolor_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8767,6 +9497,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_0gba +#define FNAME_S(name) store_pixel_fcolor_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8776,6 +9507,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_fcolor_rgba +#define FNAME_S(name) store_pixel_fcolor_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8794,6 +9526,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_r000 +#define FNAME_S(name) store_pixel_fcolor_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8803,6 +9536,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_0g00 +#define FNAME_S(name) store_pixel_fcolor_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8812,6 +9546,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_rg00 +#define FNAME_S(name) store_pixel_fcolor_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8830,6 +9565,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_fcolor_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8839,6 +9575,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_fcolor_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8848,6 +9585,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_fcolor_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8866,6 +9604,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_r00a +#define FNAME_S(name) store_pixel_fcolor_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8875,6 +9614,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_0g0a +#define FNAME_S(name) store_pixel_fcolor_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8884,6 +9624,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_rg0a +#define FNAME_S(name) store_pixel_fcolor_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8902,6 +9643,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_r0ba +#define FNAME_S(name) store_pixel_fcolor_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8911,6 +9653,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_0gba +#define FNAME_S(name) store_pixel_fcolor_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8920,6 +9663,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfcolor_rgba +#define FNAME_S(name) store_pixel_fcolor_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8938,6 +9682,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_r000 +#define FNAME_S(name) store_pixel_fcolor_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8947,6 +9692,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_0g00 +#define FNAME_S(name) store_pixel_fcolor_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8956,6 +9702,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_rg00 +#define FNAME_S(name) store_pixel_fcolor_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8974,6 +9721,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_r0b0 +#define FNAME_S(name) store_pixel_fcolor_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -8983,6 +9731,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_0gb0 +#define FNAME_S(name) store_pixel_fcolor_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -8992,6 +9741,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_rgb0 +#define FNAME_S(name) store_pixel_fcolor_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9010,6 +9760,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_r00a +#define FNAME_S(name) store_pixel_fcolor_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9019,6 +9770,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_0g0a +#define FNAME_S(name) store_pixel_fcolor_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9028,6 +9780,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_rg0a +#define FNAME_S(name) store_pixel_fcolor_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9046,6 +9799,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_r0ba +#define FNAME_S(name) store_pixel_fcolor_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9055,6 +9809,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_0gba +#define FNAME_S(name) store_pixel_fcolor_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9064,6 +9819,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ialpha_rgba +#define FNAME_S(name) store_pixel_fcolor_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9082,6 +9838,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_r000 +#define FNAME_S(name) store_pixel_fcolor_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9091,6 +9848,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_0g00 +#define FNAME_S(name) store_pixel_fcolor_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9100,6 +9858,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_rg00 +#define FNAME_S(name) store_pixel_fcolor_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9118,6 +9877,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_r0b0 +#define FNAME_S(name) store_pixel_fcolor_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9127,6 +9887,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_0gb0 +#define FNAME_S(name) store_pixel_fcolor_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9136,6 +9897,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_rgb0 +#define FNAME_S(name) store_pixel_fcolor_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9154,6 +9916,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_r00a +#define FNAME_S(name) store_pixel_fcolor_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9163,6 +9926,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_0g0a +#define FNAME_S(name) store_pixel_fcolor_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9172,6 +9936,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_rg0a +#define FNAME_S(name) store_pixel_fcolor_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9190,6 +9955,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_r0ba +#define FNAME_S(name) store_pixel_fcolor_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9199,6 +9965,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_0gba +#define FNAME_S(name) store_pixel_fcolor_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9208,6 +9975,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mialpha_rgba +#define FNAME_S(name) store_pixel_fcolor_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9226,6 +9994,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_r000 +#define FNAME_S(name) store_pixel_fcolor_falpha_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9235,6 +10004,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_0g00 +#define FNAME_S(name) store_pixel_fcolor_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9244,6 +10014,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_rg00 +#define FNAME_S(name) store_pixel_fcolor_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9262,6 +10033,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_r0b0 +#define FNAME_S(name) store_pixel_fcolor_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9271,6 +10043,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_0gb0 +#define FNAME_S(name) store_pixel_fcolor_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9280,6 +10053,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_rgb0 +#define FNAME_S(name) store_pixel_fcolor_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9298,6 +10072,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_r00a +#define FNAME_S(name) store_pixel_fcolor_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9307,6 +10082,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_0g0a +#define FNAME_S(name) store_pixel_fcolor_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9316,6 +10092,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_rg0a +#define FNAME_S(name) store_pixel_fcolor_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9334,6 +10111,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_r0ba +#define FNAME_S(name) store_pixel_fcolor_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9343,6 +10121,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_0gba +#define FNAME_S(name) store_pixel_fcolor_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9352,6 +10131,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_falpha_rgba +#define FNAME_S(name) store_pixel_fcolor_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9370,6 +10150,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_r000 +#define FNAME_S(name) store_pixel_fcolor_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9379,6 +10160,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_0g00 +#define FNAME_S(name) store_pixel_fcolor_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9388,6 +10170,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_rg00 +#define FNAME_S(name) store_pixel_fcolor_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9406,6 +10189,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_fcolor_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9415,6 +10199,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_fcolor_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9424,6 +10209,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_fcolor_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9442,6 +10228,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_r00a +#define FNAME_S(name) store_pixel_fcolor_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9451,6 +10238,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_0g0a +#define FNAME_S(name) store_pixel_fcolor_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9460,6 +10248,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_rg0a +#define FNAME_S(name) store_pixel_fcolor_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9478,6 +10267,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_r0ba +#define FNAME_S(name) store_pixel_fcolor_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9487,6 +10277,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_0gba +#define FNAME_S(name) store_pixel_fcolor_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9496,6 +10287,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mfalpha_rgba +#define FNAME_S(name) store_pixel_fcolor_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9514,6 +10306,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_r000 +#define FNAME_S(name) store_pixel_fcolor_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9523,6 +10316,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_0g00 +#define FNAME_S(name) store_pixel_fcolor_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9532,6 +10326,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_rg00 +#define FNAME_S(name) store_pixel_fcolor_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9550,6 +10345,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_r0b0 +#define FNAME_S(name) store_pixel_fcolor_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9559,6 +10355,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_0gb0 +#define FNAME_S(name) store_pixel_fcolor_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9568,6 +10365,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_rgb0 +#define FNAME_S(name) store_pixel_fcolor_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9586,6 +10384,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_r00a +#define FNAME_S(name) store_pixel_fcolor_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9595,6 +10394,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_0g0a +#define FNAME_S(name) store_pixel_fcolor_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9604,6 +10404,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_rg0a +#define FNAME_S(name) store_pixel_fcolor_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9622,6 +10423,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_r0ba +#define FNAME_S(name) store_pixel_fcolor_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9631,6 +10433,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_0gba +#define FNAME_S(name) store_pixel_fcolor_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9640,6 +10443,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_ccolor_rgba +#define FNAME_S(name) store_pixel_fcolor_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9658,6 +10462,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_r000 +#define FNAME_S(name) store_pixel_fcolor_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9667,6 +10472,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_0g00 +#define FNAME_S(name) store_pixel_fcolor_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9676,6 +10482,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_rg00 +#define FNAME_S(name) store_pixel_fcolor_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9694,6 +10501,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_r0b0 +#define FNAME_S(name) store_pixel_fcolor_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9703,6 +10511,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_0gb0 +#define FNAME_S(name) store_pixel_fcolor_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9712,6 +10521,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_rgb0 +#define FNAME_S(name) store_pixel_fcolor_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9730,6 +10540,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_r00a +#define FNAME_S(name) store_pixel_fcolor_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9739,6 +10550,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_0g0a +#define FNAME_S(name) store_pixel_fcolor_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9748,6 +10560,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_rg0a +#define FNAME_S(name) store_pixel_fcolor_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9766,6 +10579,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_r0ba +#define FNAME_S(name) store_pixel_fcolor_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9775,6 +10589,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_0gba +#define FNAME_S(name) store_pixel_fcolor_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9784,6 +10599,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mccolor_rgba +#define FNAME_S(name) store_pixel_fcolor_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9802,6 +10618,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_r000 +#define FNAME_S(name) store_pixel_fcolor_calpha_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9811,6 +10628,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_0g00 +#define FNAME_S(name) store_pixel_fcolor_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9820,6 +10638,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_rg00 +#define FNAME_S(name) store_pixel_fcolor_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9838,6 +10657,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_r0b0 +#define FNAME_S(name) store_pixel_fcolor_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9847,6 +10667,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_0gb0 +#define FNAME_S(name) store_pixel_fcolor_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9856,6 +10677,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_rgb0 +#define FNAME_S(name) store_pixel_fcolor_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9874,6 +10696,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_r00a +#define FNAME_S(name) store_pixel_fcolor_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9883,6 +10706,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_0g0a +#define FNAME_S(name) store_pixel_fcolor_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9892,6 +10716,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_rg0a +#define FNAME_S(name) store_pixel_fcolor_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9910,6 +10735,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_r0ba +#define FNAME_S(name) store_pixel_fcolor_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9919,6 +10745,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_0gba +#define FNAME_S(name) store_pixel_fcolor_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9928,6 +10755,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_calpha_rgba +#define FNAME_S(name) store_pixel_fcolor_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9946,6 +10774,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_r000 +#define FNAME_S(name) store_pixel_fcolor_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9955,6 +10784,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_0g00 +#define FNAME_S(name) store_pixel_fcolor_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -9964,6 +10794,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_rg00 +#define FNAME_S(name) store_pixel_fcolor_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9982,6 +10813,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_fcolor_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -9991,6 +10823,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_fcolor_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10000,6 +10833,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_fcolor_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10018,6 +10852,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_r00a +#define FNAME_S(name) store_pixel_fcolor_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10027,6 +10862,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_0g0a +#define FNAME_S(name) store_pixel_fcolor_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10036,6 +10872,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_rg0a +#define FNAME_S(name) store_pixel_fcolor_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10054,6 +10891,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_r0ba +#define FNAME_S(name) store_pixel_fcolor_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10063,6 +10901,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_0gba +#define FNAME_S(name) store_pixel_fcolor_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10072,6 +10911,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_fcolor_mcalpha_rgba +#define FNAME_S(name) store_pixel_fcolor_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10090,6 +10930,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_r000 +#define FNAME_S(name) store_pixel_mfcolor_zero_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10099,6 +10940,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_0g00 +#define FNAME_S(name) store_pixel_mfcolor_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10108,6 +10950,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_rg00 +#define FNAME_S(name) store_pixel_mfcolor_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10126,6 +10969,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10135,6 +10979,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10144,6 +10989,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10162,6 +11008,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_r00a +#define FNAME_S(name) store_pixel_mfcolor_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10171,6 +11018,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_0g0a +#define FNAME_S(name) store_pixel_mfcolor_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10180,6 +11028,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_rg0a +#define FNAME_S(name) store_pixel_mfcolor_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10198,6 +11047,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_r0ba +#define FNAME_S(name) store_pixel_mfcolor_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10207,6 +11057,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_0gba +#define FNAME_S(name) store_pixel_mfcolor_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10216,6 +11067,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_zero_rgba +#define FNAME_S(name) store_pixel_mfcolor_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10234,6 +11086,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_r000 +#define FNAME_S(name) store_pixel_mfcolor_one_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10243,6 +11096,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_0g00 +#define FNAME_S(name) store_pixel_mfcolor_one_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10252,6 +11106,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_rg00 +#define FNAME_S(name) store_pixel_mfcolor_one_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10270,6 +11125,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10279,6 +11135,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10288,6 +11145,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10306,6 +11164,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_r00a +#define FNAME_S(name) store_pixel_mfcolor_one_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10315,6 +11174,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_0g0a +#define FNAME_S(name) store_pixel_mfcolor_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10324,6 +11184,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_rg0a +#define FNAME_S(name) store_pixel_mfcolor_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10342,6 +11203,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_r0ba +#define FNAME_S(name) store_pixel_mfcolor_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10351,6 +11213,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_0gba +#define FNAME_S(name) store_pixel_mfcolor_one_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10360,6 +11223,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_one_rgba +#define FNAME_S(name) store_pixel_mfcolor_one_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10378,6 +11242,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_r000 +#define FNAME_S(name) store_pixel_mfcolor_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10387,6 +11252,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_0g00 +#define FNAME_S(name) store_pixel_mfcolor_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10396,6 +11262,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_rg00 +#define FNAME_S(name) store_pixel_mfcolor_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10414,6 +11281,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10423,6 +11291,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10432,6 +11301,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10450,6 +11320,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_r00a +#define FNAME_S(name) store_pixel_mfcolor_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10459,6 +11330,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_0g0a +#define FNAME_S(name) store_pixel_mfcolor_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10468,6 +11340,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_rg0a +#define FNAME_S(name) store_pixel_mfcolor_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10486,6 +11359,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_r0ba +#define FNAME_S(name) store_pixel_mfcolor_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10495,6 +11369,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_0gba +#define FNAME_S(name) store_pixel_mfcolor_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10504,6 +11379,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_icolor_rgba +#define FNAME_S(name) store_pixel_mfcolor_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10522,6 +11398,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_r000 +#define FNAME_S(name) store_pixel_mfcolor_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10531,6 +11408,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_0g00 +#define FNAME_S(name) store_pixel_mfcolor_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10540,6 +11418,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_rg00 +#define FNAME_S(name) store_pixel_mfcolor_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10558,6 +11437,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10567,6 +11447,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10576,6 +11457,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10594,6 +11476,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_r00a +#define FNAME_S(name) store_pixel_mfcolor_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10603,6 +11486,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_0g0a +#define FNAME_S(name) store_pixel_mfcolor_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10612,6 +11496,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_rg0a +#define FNAME_S(name) store_pixel_mfcolor_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10630,6 +11515,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_r0ba +#define FNAME_S(name) store_pixel_mfcolor_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10639,6 +11525,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_0gba +#define FNAME_S(name) store_pixel_mfcolor_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10648,6 +11535,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_micolor_rgba +#define FNAME_S(name) store_pixel_mfcolor_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10666,6 +11554,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_r000 +#define FNAME_S(name) store_pixel_mfcolor_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10675,6 +11564,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_0g00 +#define FNAME_S(name) store_pixel_mfcolor_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10684,6 +11574,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_rg00 +#define FNAME_S(name) store_pixel_mfcolor_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10702,6 +11593,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10711,6 +11603,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10720,6 +11613,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10738,6 +11632,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_r00a +#define FNAME_S(name) store_pixel_mfcolor_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10747,6 +11642,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_0g0a +#define FNAME_S(name) store_pixel_mfcolor_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10756,6 +11652,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_rg0a +#define FNAME_S(name) store_pixel_mfcolor_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10774,6 +11671,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_r0ba +#define FNAME_S(name) store_pixel_mfcolor_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10783,6 +11681,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_0gba +#define FNAME_S(name) store_pixel_mfcolor_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10792,6 +11691,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_fcolor_rgba +#define FNAME_S(name) store_pixel_mfcolor_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10810,6 +11710,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_r000 +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10819,6 +11720,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_0g00 +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10828,6 +11730,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_rg00 +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10846,6 +11749,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10855,6 +11759,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10864,6 +11769,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10882,6 +11788,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_r00a +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10891,6 +11798,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_0g0a +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10900,6 +11808,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_rg0a +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10918,6 +11827,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_r0ba +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10927,6 +11837,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_0gba +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10936,6 +11847,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfcolor_rgba +#define FNAME_S(name) store_pixel_mfcolor_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10954,6 +11866,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_r000 +#define FNAME_S(name) store_pixel_mfcolor_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10963,6 +11876,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_0g00 +#define FNAME_S(name) store_pixel_mfcolor_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -10972,6 +11886,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_rg00 +#define FNAME_S(name) store_pixel_mfcolor_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10990,6 +11905,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -10999,6 +11915,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11008,6 +11925,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11026,6 +11944,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_r00a +#define FNAME_S(name) store_pixel_mfcolor_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11035,6 +11954,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_0g0a +#define FNAME_S(name) store_pixel_mfcolor_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11044,6 +11964,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_rg0a +#define FNAME_S(name) store_pixel_mfcolor_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11062,6 +11983,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_r0ba +#define FNAME_S(name) store_pixel_mfcolor_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11071,6 +11993,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_0gba +#define FNAME_S(name) store_pixel_mfcolor_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11080,6 +12003,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ialpha_rgba +#define FNAME_S(name) store_pixel_mfcolor_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11098,6 +12022,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_r000 +#define FNAME_S(name) store_pixel_mfcolor_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11107,6 +12032,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_0g00 +#define FNAME_S(name) store_pixel_mfcolor_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11116,6 +12042,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_rg00 +#define FNAME_S(name) store_pixel_mfcolor_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11134,6 +12061,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11143,6 +12071,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11152,6 +12081,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11170,6 +12100,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_r00a +#define FNAME_S(name) store_pixel_mfcolor_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11179,6 +12110,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_0g0a +#define FNAME_S(name) store_pixel_mfcolor_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11188,6 +12120,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_rg0a +#define FNAME_S(name) store_pixel_mfcolor_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11206,6 +12139,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_r0ba +#define FNAME_S(name) store_pixel_mfcolor_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11215,6 +12149,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_0gba +#define FNAME_S(name) store_pixel_mfcolor_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11224,6 +12159,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mialpha_rgba +#define FNAME_S(name) store_pixel_mfcolor_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11242,6 +12178,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_r000 +#define FNAME_S(name) store_pixel_mfcolor_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11251,6 +12188,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_0g00 +#define FNAME_S(name) store_pixel_mfcolor_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11260,6 +12198,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_rg00 +#define FNAME_S(name) store_pixel_mfcolor_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11278,6 +12217,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11287,6 +12227,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11296,6 +12237,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11314,6 +12256,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_r00a +#define FNAME_S(name) store_pixel_mfcolor_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11323,6 +12266,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_0g0a +#define FNAME_S(name) store_pixel_mfcolor_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11332,6 +12276,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_rg0a +#define FNAME_S(name) store_pixel_mfcolor_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11350,6 +12295,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_r0ba +#define FNAME_S(name) store_pixel_mfcolor_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11359,6 +12305,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_0gba +#define FNAME_S(name) store_pixel_mfcolor_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11368,6 +12315,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_falpha_rgba +#define FNAME_S(name) store_pixel_mfcolor_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11386,6 +12334,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_r000 +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11395,6 +12344,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_0g00 +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11404,6 +12354,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_rg00 +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11422,6 +12373,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11431,6 +12383,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11440,6 +12393,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11458,6 +12412,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_r00a +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11467,6 +12422,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_0g0a +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11476,6 +12432,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_rg0a +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11494,6 +12451,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_r0ba +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11503,6 +12461,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_0gba +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11512,6 +12471,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mfalpha_rgba +#define FNAME_S(name) store_pixel_mfcolor_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11530,6 +12490,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_r000 +#define FNAME_S(name) store_pixel_mfcolor_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11539,6 +12500,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_0g00 +#define FNAME_S(name) store_pixel_mfcolor_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11548,6 +12510,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_rg00 +#define FNAME_S(name) store_pixel_mfcolor_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11566,6 +12529,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11575,6 +12539,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11584,6 +12549,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11602,6 +12568,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_r00a +#define FNAME_S(name) store_pixel_mfcolor_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11611,6 +12578,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_0g0a +#define FNAME_S(name) store_pixel_mfcolor_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11620,6 +12588,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_rg0a +#define FNAME_S(name) store_pixel_mfcolor_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11638,6 +12607,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_r0ba +#define FNAME_S(name) store_pixel_mfcolor_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11647,6 +12617,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_0gba +#define FNAME_S(name) store_pixel_mfcolor_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11656,6 +12627,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_ccolor_rgba +#define FNAME_S(name) store_pixel_mfcolor_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11674,6 +12646,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_r000 +#define FNAME_S(name) store_pixel_mfcolor_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11683,6 +12656,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_0g00 +#define FNAME_S(name) store_pixel_mfcolor_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11692,6 +12666,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_rg00 +#define FNAME_S(name) store_pixel_mfcolor_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11710,6 +12685,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11719,6 +12695,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11728,6 +12705,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11746,6 +12724,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_r00a +#define FNAME_S(name) store_pixel_mfcolor_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11755,6 +12734,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_0g0a +#define FNAME_S(name) store_pixel_mfcolor_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11764,6 +12744,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_rg0a +#define FNAME_S(name) store_pixel_mfcolor_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11782,6 +12763,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_r0ba +#define FNAME_S(name) store_pixel_mfcolor_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11791,6 +12773,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_0gba +#define FNAME_S(name) store_pixel_mfcolor_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11800,6 +12783,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mccolor_rgba +#define FNAME_S(name) store_pixel_mfcolor_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11818,6 +12802,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_r000 +#define FNAME_S(name) store_pixel_mfcolor_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11827,6 +12812,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_0g00 +#define FNAME_S(name) store_pixel_mfcolor_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11836,6 +12822,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_rg00 +#define FNAME_S(name) store_pixel_mfcolor_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11854,6 +12841,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11863,6 +12851,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11872,6 +12861,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11890,6 +12880,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_r00a +#define FNAME_S(name) store_pixel_mfcolor_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11899,6 +12890,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_0g0a +#define FNAME_S(name) store_pixel_mfcolor_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11908,6 +12900,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_rg0a +#define FNAME_S(name) store_pixel_mfcolor_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11926,6 +12919,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_r0ba +#define FNAME_S(name) store_pixel_mfcolor_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11935,6 +12929,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_0gba +#define FNAME_S(name) store_pixel_mfcolor_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11944,6 +12939,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_calpha_rgba +#define FNAME_S(name) store_pixel_mfcolor_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11962,6 +12958,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_r000 +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11971,6 +12968,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_0g00 +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -11980,6 +12978,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_rg00 +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -11998,6 +12997,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12007,6 +13007,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12016,6 +13017,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12034,6 +13036,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_r00a +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12043,6 +13046,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_0g0a +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12052,6 +13056,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_rg0a +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12070,6 +13075,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_r0ba +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12079,6 +13085,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_0gba +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12088,6 +13095,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfcolor_mcalpha_rgba +#define FNAME_S(name) store_pixel_mfcolor_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - f)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12106,6 +13114,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_r000 +#define FNAME_S(name) store_pixel_ialpha_zero_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12115,6 +13124,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_0g00 +#define FNAME_S(name) store_pixel_ialpha_zero_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12124,6 +13134,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_rg00 +#define FNAME_S(name) store_pixel_ialpha_zero_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12142,6 +13153,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_r0b0 +#define FNAME_S(name) store_pixel_ialpha_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12151,6 +13163,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_0gb0 +#define FNAME_S(name) store_pixel_ialpha_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12160,6 +13173,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_rgb0 +#define FNAME_S(name) store_pixel_ialpha_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12178,6 +13192,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_r00a +#define FNAME_S(name) store_pixel_ialpha_zero_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12187,6 +13202,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_0g0a +#define FNAME_S(name) store_pixel_ialpha_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12196,6 +13212,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_rg0a +#define FNAME_S(name) store_pixel_ialpha_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12214,6 +13231,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_r0ba +#define FNAME_S(name) store_pixel_ialpha_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12223,6 +13241,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_0gba +#define FNAME_S(name) store_pixel_ialpha_zero_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12232,6 +13251,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_zero_rgba +#define FNAME_S(name) store_pixel_ialpha_zero_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12250,6 +13270,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_r000 +#define FNAME_S(name) store_pixel_ialpha_one_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12259,6 +13280,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_0g00 +#define FNAME_S(name) store_pixel_ialpha_one_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12268,6 +13290,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_rg00 +#define FNAME_S(name) store_pixel_ialpha_one_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12286,6 +13309,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_r0b0 +#define FNAME_S(name) store_pixel_ialpha_one_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12295,6 +13319,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_0gb0 +#define FNAME_S(name) store_pixel_ialpha_one_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12304,6 +13329,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_rgb0 +#define FNAME_S(name) store_pixel_ialpha_one_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12322,6 +13348,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_r00a +#define FNAME_S(name) store_pixel_ialpha_one_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12331,6 +13358,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_0g0a +#define FNAME_S(name) store_pixel_ialpha_one_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12340,6 +13368,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_rg0a +#define FNAME_S(name) store_pixel_ialpha_one_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12358,6 +13387,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_r0ba +#define FNAME_S(name) store_pixel_ialpha_one_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12367,6 +13397,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_0gba +#define FNAME_S(name) store_pixel_ialpha_one_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12376,6 +13407,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_one_rgba +#define FNAME_S(name) store_pixel_ialpha_one_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12394,6 +13426,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_r000 +#define FNAME_S(name) store_pixel_ialpha_icolor_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12403,6 +13436,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_0g00 +#define FNAME_S(name) store_pixel_ialpha_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12412,6 +13446,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_rg00 +#define FNAME_S(name) store_pixel_ialpha_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12430,6 +13465,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_r0b0 +#define FNAME_S(name) store_pixel_ialpha_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12439,6 +13475,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_0gb0 +#define FNAME_S(name) store_pixel_ialpha_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12448,6 +13485,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_rgb0 +#define FNAME_S(name) store_pixel_ialpha_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12466,6 +13504,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_r00a +#define FNAME_S(name) store_pixel_ialpha_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12475,6 +13514,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_0g0a +#define FNAME_S(name) store_pixel_ialpha_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12484,6 +13524,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_rg0a +#define FNAME_S(name) store_pixel_ialpha_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12502,6 +13543,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_r0ba +#define FNAME_S(name) store_pixel_ialpha_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12511,6 +13553,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_0gba +#define FNAME_S(name) store_pixel_ialpha_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12520,6 +13563,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_icolor_rgba +#define FNAME_S(name) store_pixel_ialpha_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12538,6 +13582,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_r000 +#define FNAME_S(name) store_pixel_ialpha_micolor_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12547,6 +13592,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_0g00 +#define FNAME_S(name) store_pixel_ialpha_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12556,6 +13602,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_rg00 +#define FNAME_S(name) store_pixel_ialpha_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12574,6 +13621,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_r0b0 +#define FNAME_S(name) store_pixel_ialpha_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12583,6 +13631,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_0gb0 +#define FNAME_S(name) store_pixel_ialpha_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12592,6 +13641,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_rgb0 +#define FNAME_S(name) store_pixel_ialpha_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12610,6 +13660,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_r00a +#define FNAME_S(name) store_pixel_ialpha_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12619,6 +13670,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_0g0a +#define FNAME_S(name) store_pixel_ialpha_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12628,6 +13680,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_rg0a +#define FNAME_S(name) store_pixel_ialpha_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12646,6 +13699,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_r0ba +#define FNAME_S(name) store_pixel_ialpha_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12655,6 +13709,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_0gba +#define FNAME_S(name) store_pixel_ialpha_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12664,6 +13719,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_micolor_rgba +#define FNAME_S(name) store_pixel_ialpha_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12682,6 +13738,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_r000 +#define FNAME_S(name) store_pixel_ialpha_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12691,6 +13748,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_0g00 +#define FNAME_S(name) store_pixel_ialpha_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12700,6 +13758,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_rg00 +#define FNAME_S(name) store_pixel_ialpha_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12718,6 +13777,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_r0b0 +#define FNAME_S(name) store_pixel_ialpha_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12727,6 +13787,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_0gb0 +#define FNAME_S(name) store_pixel_ialpha_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12736,6 +13797,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_rgb0 +#define FNAME_S(name) store_pixel_ialpha_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12754,6 +13816,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_r00a +#define FNAME_S(name) store_pixel_ialpha_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12763,6 +13826,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_0g0a +#define FNAME_S(name) store_pixel_ialpha_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12772,6 +13836,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_rg0a +#define FNAME_S(name) store_pixel_ialpha_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12790,6 +13855,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_r0ba +#define FNAME_S(name) store_pixel_ialpha_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12799,6 +13865,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_0gba +#define FNAME_S(name) store_pixel_ialpha_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12808,6 +13875,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_fcolor_rgba +#define FNAME_S(name) store_pixel_ialpha_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12826,6 +13894,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_r000 +#define FNAME_S(name) store_pixel_ialpha_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12835,6 +13904,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_0g00 +#define FNAME_S(name) store_pixel_ialpha_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12844,6 +13914,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_rg00 +#define FNAME_S(name) store_pixel_ialpha_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12862,6 +13933,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_ialpha_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12871,6 +13943,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_ialpha_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12880,6 +13953,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_ialpha_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12898,6 +13972,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_r00a +#define FNAME_S(name) store_pixel_ialpha_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12907,6 +13982,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_0g0a +#define FNAME_S(name) store_pixel_ialpha_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12916,6 +13992,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_rg0a +#define FNAME_S(name) store_pixel_ialpha_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12934,6 +14011,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_r0ba +#define FNAME_S(name) store_pixel_ialpha_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12943,6 +14021,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_0gba +#define FNAME_S(name) store_pixel_ialpha_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12952,6 +14031,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfcolor_rgba +#define FNAME_S(name) store_pixel_ialpha_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12970,6 +14050,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_r000 +#define FNAME_S(name) store_pixel_ialpha_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -12979,6 +14060,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_0g00 +#define FNAME_S(name) store_pixel_ialpha_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -12988,6 +14070,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_rg00 +#define FNAME_S(name) store_pixel_ialpha_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13006,6 +14089,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_r0b0 +#define FNAME_S(name) store_pixel_ialpha_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13015,6 +14099,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_0gb0 +#define FNAME_S(name) store_pixel_ialpha_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13024,6 +14109,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_rgb0 +#define FNAME_S(name) store_pixel_ialpha_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13042,6 +14128,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_r00a +#define FNAME_S(name) store_pixel_ialpha_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13051,6 +14138,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_0g0a +#define FNAME_S(name) store_pixel_ialpha_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13060,6 +14148,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_rg0a +#define FNAME_S(name) store_pixel_ialpha_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13078,6 +14167,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_r0ba +#define FNAME_S(name) store_pixel_ialpha_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13087,6 +14177,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_0gba +#define FNAME_S(name) store_pixel_ialpha_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13096,6 +14187,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ialpha_rgba +#define FNAME_S(name) store_pixel_ialpha_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13114,6 +14206,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_r000 +#define FNAME_S(name) store_pixel_ialpha_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13123,6 +14216,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_0g00 +#define FNAME_S(name) store_pixel_ialpha_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13132,6 +14226,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_rg00 +#define FNAME_S(name) store_pixel_ialpha_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13150,6 +14245,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_r0b0 +#define FNAME_S(name) store_pixel_ialpha_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13159,6 +14255,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_0gb0 +#define FNAME_S(name) store_pixel_ialpha_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13168,6 +14265,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_rgb0 +#define FNAME_S(name) store_pixel_ialpha_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13186,6 +14284,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_r00a +#define FNAME_S(name) store_pixel_ialpha_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13195,6 +14294,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_0g0a +#define FNAME_S(name) store_pixel_ialpha_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13204,6 +14304,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_rg0a +#define FNAME_S(name) store_pixel_ialpha_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13222,6 +14323,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_r0ba +#define FNAME_S(name) store_pixel_ialpha_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13231,6 +14333,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_0gba +#define FNAME_S(name) store_pixel_ialpha_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13240,6 +14343,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mialpha_rgba +#define FNAME_S(name) store_pixel_ialpha_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13258,6 +14362,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_r000 +#define FNAME_S(name) store_pixel_ialpha_falpha_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13267,6 +14372,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_0g00 +#define FNAME_S(name) store_pixel_ialpha_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13276,6 +14382,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_rg00 +#define FNAME_S(name) store_pixel_ialpha_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13294,6 +14401,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_r0b0 +#define FNAME_S(name) store_pixel_ialpha_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13303,6 +14411,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_0gb0 +#define FNAME_S(name) store_pixel_ialpha_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13312,6 +14421,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_rgb0 +#define FNAME_S(name) store_pixel_ialpha_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13330,6 +14440,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_r00a +#define FNAME_S(name) store_pixel_ialpha_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13339,6 +14450,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_0g0a +#define FNAME_S(name) store_pixel_ialpha_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13348,6 +14460,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_rg0a +#define FNAME_S(name) store_pixel_ialpha_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13366,6 +14479,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_r0ba +#define FNAME_S(name) store_pixel_ialpha_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13375,6 +14489,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_0gba +#define FNAME_S(name) store_pixel_ialpha_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13384,6 +14499,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_falpha_rgba +#define FNAME_S(name) store_pixel_ialpha_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13402,6 +14518,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_r000 +#define FNAME_S(name) store_pixel_ialpha_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13411,6 +14528,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_0g00 +#define FNAME_S(name) store_pixel_ialpha_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13420,6 +14538,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_rg00 +#define FNAME_S(name) store_pixel_ialpha_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13438,6 +14557,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_ialpha_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13447,6 +14567,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_ialpha_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13456,6 +14577,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_ialpha_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13474,6 +14596,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_r00a +#define FNAME_S(name) store_pixel_ialpha_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13483,6 +14606,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_0g0a +#define FNAME_S(name) store_pixel_ialpha_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13492,6 +14616,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_rg0a +#define FNAME_S(name) store_pixel_ialpha_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13510,6 +14635,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_r0ba +#define FNAME_S(name) store_pixel_ialpha_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13519,6 +14645,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_0gba +#define FNAME_S(name) store_pixel_ialpha_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13528,6 +14655,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mfalpha_rgba +#define FNAME_S(name) store_pixel_ialpha_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13546,6 +14674,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_r000 +#define FNAME_S(name) store_pixel_ialpha_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13555,6 +14684,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_0g00 +#define FNAME_S(name) store_pixel_ialpha_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13564,6 +14694,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_rg00 +#define FNAME_S(name) store_pixel_ialpha_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13582,6 +14713,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_r0b0 +#define FNAME_S(name) store_pixel_ialpha_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13591,6 +14723,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_0gb0 +#define FNAME_S(name) store_pixel_ialpha_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13600,6 +14733,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_rgb0 +#define FNAME_S(name) store_pixel_ialpha_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13618,6 +14752,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_r00a +#define FNAME_S(name) store_pixel_ialpha_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13627,6 +14762,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_0g0a +#define FNAME_S(name) store_pixel_ialpha_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13636,6 +14772,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_rg0a +#define FNAME_S(name) store_pixel_ialpha_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13654,6 +14791,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_r0ba +#define FNAME_S(name) store_pixel_ialpha_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13663,6 +14801,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_0gba +#define FNAME_S(name) store_pixel_ialpha_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13672,6 +14811,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_ccolor_rgba +#define FNAME_S(name) store_pixel_ialpha_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13690,6 +14830,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_r000 +#define FNAME_S(name) store_pixel_ialpha_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13699,6 +14840,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_0g00 +#define FNAME_S(name) store_pixel_ialpha_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13708,6 +14850,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_rg00 +#define FNAME_S(name) store_pixel_ialpha_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13726,6 +14869,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_r0b0 +#define FNAME_S(name) store_pixel_ialpha_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13735,6 +14879,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_0gb0 +#define FNAME_S(name) store_pixel_ialpha_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13744,6 +14889,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_rgb0 +#define FNAME_S(name) store_pixel_ialpha_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13762,6 +14908,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_r00a +#define FNAME_S(name) store_pixel_ialpha_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13771,6 +14918,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_0g0a +#define FNAME_S(name) store_pixel_ialpha_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13780,6 +14928,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_rg0a +#define FNAME_S(name) store_pixel_ialpha_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13798,6 +14947,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_r0ba +#define FNAME_S(name) store_pixel_ialpha_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13807,6 +14957,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_0gba +#define FNAME_S(name) store_pixel_ialpha_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13816,6 +14967,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mccolor_rgba +#define FNAME_S(name) store_pixel_ialpha_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13834,6 +14986,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_r000 +#define FNAME_S(name) store_pixel_ialpha_calpha_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13843,6 +14996,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_0g00 +#define FNAME_S(name) store_pixel_ialpha_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13852,6 +15006,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_rg00 +#define FNAME_S(name) store_pixel_ialpha_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13870,6 +15025,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_r0b0 +#define FNAME_S(name) store_pixel_ialpha_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13879,6 +15035,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_0gb0 +#define FNAME_S(name) store_pixel_ialpha_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13888,6 +15045,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_rgb0 +#define FNAME_S(name) store_pixel_ialpha_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13906,6 +15064,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_r00a +#define FNAME_S(name) store_pixel_ialpha_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13915,6 +15074,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_0g0a +#define FNAME_S(name) store_pixel_ialpha_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13924,6 +15084,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_rg0a +#define FNAME_S(name) store_pixel_ialpha_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13942,6 +15103,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_r0ba +#define FNAME_S(name) store_pixel_ialpha_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13951,6 +15113,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_0gba +#define FNAME_S(name) store_pixel_ialpha_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13960,6 +15123,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_calpha_rgba +#define FNAME_S(name) store_pixel_ialpha_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13978,6 +15142,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_r000 +#define FNAME_S(name) store_pixel_ialpha_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -13987,6 +15152,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_0g00 +#define FNAME_S(name) store_pixel_ialpha_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -13996,6 +15162,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_rg00 +#define FNAME_S(name) store_pixel_ialpha_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14014,6 +15181,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_ialpha_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14023,6 +15191,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_ialpha_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14032,6 +15201,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_ialpha_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14050,6 +15220,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_r00a +#define FNAME_S(name) store_pixel_ialpha_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14059,6 +15230,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_0g0a +#define FNAME_S(name) store_pixel_ialpha_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14068,6 +15240,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_rg0a +#define FNAME_S(name) store_pixel_ialpha_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14086,6 +15259,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_r0ba +#define FNAME_S(name) store_pixel_ialpha_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14095,6 +15269,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_0gba +#define FNAME_S(name) store_pixel_ialpha_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14104,6 +15279,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ialpha_mcalpha_rgba +#define FNAME_S(name) store_pixel_ialpha_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14122,6 +15298,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_r000 +#define FNAME_S(name) store_pixel_mialpha_zero_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14131,6 +15308,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_0g00 +#define FNAME_S(name) store_pixel_mialpha_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14140,6 +15318,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_rg00 +#define FNAME_S(name) store_pixel_mialpha_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14158,6 +15337,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_r0b0 +#define FNAME_S(name) store_pixel_mialpha_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14167,6 +15347,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_0gb0 +#define FNAME_S(name) store_pixel_mialpha_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14176,6 +15357,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_rgb0 +#define FNAME_S(name) store_pixel_mialpha_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14194,6 +15376,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_r00a +#define FNAME_S(name) store_pixel_mialpha_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14203,6 +15386,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_0g0a +#define FNAME_S(name) store_pixel_mialpha_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14212,6 +15396,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_rg0a +#define FNAME_S(name) store_pixel_mialpha_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14230,6 +15415,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_r0ba +#define FNAME_S(name) store_pixel_mialpha_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14239,6 +15425,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_0gba +#define FNAME_S(name) store_pixel_mialpha_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14248,6 +15435,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_zero_rgba +#define FNAME_S(name) store_pixel_mialpha_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14266,6 +15454,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_r000 +#define FNAME_S(name) store_pixel_mialpha_one_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14275,6 +15464,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_0g00 +#define FNAME_S(name) store_pixel_mialpha_one_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14284,6 +15474,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_rg00 +#define FNAME_S(name) store_pixel_mialpha_one_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14302,6 +15493,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_r0b0 +#define FNAME_S(name) store_pixel_mialpha_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14311,6 +15503,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_0gb0 +#define FNAME_S(name) store_pixel_mialpha_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14320,6 +15513,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_rgb0 +#define FNAME_S(name) store_pixel_mialpha_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14338,6 +15532,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_r00a +#define FNAME_S(name) store_pixel_mialpha_one_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14347,6 +15542,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_0g0a +#define FNAME_S(name) store_pixel_mialpha_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14356,6 +15552,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_rg0a +#define FNAME_S(name) store_pixel_mialpha_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14374,6 +15571,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_r0ba +#define FNAME_S(name) store_pixel_mialpha_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14383,6 +15581,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_0gba +#define FNAME_S(name) store_pixel_mialpha_one_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14392,6 +15591,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_one_rgba +#define FNAME_S(name) store_pixel_mialpha_one_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14410,6 +15610,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_r000 +#define FNAME_S(name) store_pixel_mialpha_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14419,6 +15620,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_0g00 +#define FNAME_S(name) store_pixel_mialpha_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14428,6 +15630,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_rg00 +#define FNAME_S(name) store_pixel_mialpha_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14446,6 +15649,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_r0b0 +#define FNAME_S(name) store_pixel_mialpha_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14455,6 +15659,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_0gb0 +#define FNAME_S(name) store_pixel_mialpha_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14464,6 +15669,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_rgb0 +#define FNAME_S(name) store_pixel_mialpha_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14482,6 +15688,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_r00a +#define FNAME_S(name) store_pixel_mialpha_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14491,6 +15698,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_0g0a +#define FNAME_S(name) store_pixel_mialpha_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14500,6 +15708,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_rg0a +#define FNAME_S(name) store_pixel_mialpha_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14518,6 +15727,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_r0ba +#define FNAME_S(name) store_pixel_mialpha_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14527,6 +15737,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_0gba +#define FNAME_S(name) store_pixel_mialpha_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14536,6 +15747,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_icolor_rgba +#define FNAME_S(name) store_pixel_mialpha_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14554,6 +15766,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_r000 +#define FNAME_S(name) store_pixel_mialpha_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14563,6 +15776,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_0g00 +#define FNAME_S(name) store_pixel_mialpha_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14572,6 +15786,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_rg00 +#define FNAME_S(name) store_pixel_mialpha_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14590,6 +15805,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_r0b0 +#define FNAME_S(name) store_pixel_mialpha_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14599,6 +15815,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_0gb0 +#define FNAME_S(name) store_pixel_mialpha_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14608,6 +15825,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_rgb0 +#define FNAME_S(name) store_pixel_mialpha_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14626,6 +15844,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_r00a +#define FNAME_S(name) store_pixel_mialpha_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14635,6 +15854,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_0g0a +#define FNAME_S(name) store_pixel_mialpha_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14644,6 +15864,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_rg0a +#define FNAME_S(name) store_pixel_mialpha_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14662,6 +15883,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_r0ba +#define FNAME_S(name) store_pixel_mialpha_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14671,6 +15893,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_0gba +#define FNAME_S(name) store_pixel_mialpha_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14680,6 +15903,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_micolor_rgba +#define FNAME_S(name) store_pixel_mialpha_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14698,6 +15922,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_r000 +#define FNAME_S(name) store_pixel_mialpha_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14707,6 +15932,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_0g00 +#define FNAME_S(name) store_pixel_mialpha_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14716,6 +15942,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_rg00 +#define FNAME_S(name) store_pixel_mialpha_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14734,6 +15961,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_r0b0 +#define FNAME_S(name) store_pixel_mialpha_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14743,6 +15971,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_0gb0 +#define FNAME_S(name) store_pixel_mialpha_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14752,6 +15981,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_rgb0 +#define FNAME_S(name) store_pixel_mialpha_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14770,6 +16000,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_r00a +#define FNAME_S(name) store_pixel_mialpha_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14779,6 +16010,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_0g0a +#define FNAME_S(name) store_pixel_mialpha_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14788,6 +16020,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_rg0a +#define FNAME_S(name) store_pixel_mialpha_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14806,6 +16039,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_r0ba +#define FNAME_S(name) store_pixel_mialpha_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14815,6 +16049,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_0gba +#define FNAME_S(name) store_pixel_mialpha_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14824,6 +16059,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_fcolor_rgba +#define FNAME_S(name) store_pixel_mialpha_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14842,6 +16078,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_r000 +#define FNAME_S(name) store_pixel_mialpha_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14851,6 +16088,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_0g00 +#define FNAME_S(name) store_pixel_mialpha_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14860,6 +16098,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_rg00 +#define FNAME_S(name) store_pixel_mialpha_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14878,6 +16117,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_mialpha_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14887,6 +16127,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_mialpha_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14896,6 +16137,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_mialpha_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14914,6 +16156,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_r00a +#define FNAME_S(name) store_pixel_mialpha_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14923,6 +16166,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_0g0a +#define FNAME_S(name) store_pixel_mialpha_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14932,6 +16176,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_rg0a +#define FNAME_S(name) store_pixel_mialpha_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14950,6 +16195,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_r0ba +#define FNAME_S(name) store_pixel_mialpha_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14959,6 +16205,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_0gba +#define FNAME_S(name) store_pixel_mialpha_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -14968,6 +16215,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfcolor_rgba +#define FNAME_S(name) store_pixel_mialpha_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14986,6 +16234,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_r000 +#define FNAME_S(name) store_pixel_mialpha_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -14995,6 +16244,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_0g00 +#define FNAME_S(name) store_pixel_mialpha_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15004,6 +16254,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_rg00 +#define FNAME_S(name) store_pixel_mialpha_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15022,6 +16273,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_r0b0 +#define FNAME_S(name) store_pixel_mialpha_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15031,6 +16283,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_0gb0 +#define FNAME_S(name) store_pixel_mialpha_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15040,6 +16293,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_rgb0 +#define FNAME_S(name) store_pixel_mialpha_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15058,6 +16312,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_r00a +#define FNAME_S(name) store_pixel_mialpha_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15067,6 +16322,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_0g0a +#define FNAME_S(name) store_pixel_mialpha_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15076,6 +16332,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_rg0a +#define FNAME_S(name) store_pixel_mialpha_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15094,6 +16351,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_r0ba +#define FNAME_S(name) store_pixel_mialpha_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15103,6 +16361,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_0gba +#define FNAME_S(name) store_pixel_mialpha_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15112,6 +16371,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ialpha_rgba +#define FNAME_S(name) store_pixel_mialpha_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15130,6 +16390,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_r000 +#define FNAME_S(name) store_pixel_mialpha_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15139,6 +16400,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_0g00 +#define FNAME_S(name) store_pixel_mialpha_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15148,6 +16410,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_rg00 +#define FNAME_S(name) store_pixel_mialpha_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15166,6 +16429,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_r0b0 +#define FNAME_S(name) store_pixel_mialpha_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15175,6 +16439,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_0gb0 +#define FNAME_S(name) store_pixel_mialpha_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15184,6 +16449,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_rgb0 +#define FNAME_S(name) store_pixel_mialpha_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15202,6 +16468,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_r00a +#define FNAME_S(name) store_pixel_mialpha_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15211,6 +16478,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_0g0a +#define FNAME_S(name) store_pixel_mialpha_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15220,6 +16488,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_rg0a +#define FNAME_S(name) store_pixel_mialpha_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15238,6 +16507,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_r0ba +#define FNAME_S(name) store_pixel_mialpha_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15247,6 +16517,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_0gba +#define FNAME_S(name) store_pixel_mialpha_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15256,6 +16527,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mialpha_rgba +#define FNAME_S(name) store_pixel_mialpha_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15274,6 +16546,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_r000 +#define FNAME_S(name) store_pixel_mialpha_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15283,6 +16556,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_0g00 +#define FNAME_S(name) store_pixel_mialpha_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15292,6 +16566,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_rg00 +#define FNAME_S(name) store_pixel_mialpha_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15310,6 +16585,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_r0b0 +#define FNAME_S(name) store_pixel_mialpha_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15319,6 +16595,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_0gb0 +#define FNAME_S(name) store_pixel_mialpha_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15328,6 +16605,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_rgb0 +#define FNAME_S(name) store_pixel_mialpha_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15346,6 +16624,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_r00a +#define FNAME_S(name) store_pixel_mialpha_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15355,6 +16634,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_0g0a +#define FNAME_S(name) store_pixel_mialpha_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15364,6 +16644,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_rg0a +#define FNAME_S(name) store_pixel_mialpha_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15382,6 +16663,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_r0ba +#define FNAME_S(name) store_pixel_mialpha_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15391,6 +16673,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_0gba +#define FNAME_S(name) store_pixel_mialpha_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15400,6 +16683,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_falpha_rgba +#define FNAME_S(name) store_pixel_mialpha_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15418,6 +16702,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_r000 +#define FNAME_S(name) store_pixel_mialpha_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15427,6 +16712,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_0g00 +#define FNAME_S(name) store_pixel_mialpha_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15436,6 +16722,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_rg00 +#define FNAME_S(name) store_pixel_mialpha_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15454,6 +16741,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_mialpha_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15463,6 +16751,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_mialpha_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15472,6 +16761,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_mialpha_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15490,6 +16780,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_r00a +#define FNAME_S(name) store_pixel_mialpha_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15499,6 +16790,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_0g0a +#define FNAME_S(name) store_pixel_mialpha_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15508,6 +16800,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_rg0a +#define FNAME_S(name) store_pixel_mialpha_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15526,6 +16819,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_r0ba +#define FNAME_S(name) store_pixel_mialpha_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15535,6 +16829,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_0gba +#define FNAME_S(name) store_pixel_mialpha_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15544,6 +16839,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mfalpha_rgba +#define FNAME_S(name) store_pixel_mialpha_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15562,6 +16858,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_r000 +#define FNAME_S(name) store_pixel_mialpha_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15571,6 +16868,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_0g00 +#define FNAME_S(name) store_pixel_mialpha_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15580,6 +16878,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_rg00 +#define FNAME_S(name) store_pixel_mialpha_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15598,6 +16897,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_r0b0 +#define FNAME_S(name) store_pixel_mialpha_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15607,6 +16907,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_0gb0 +#define FNAME_S(name) store_pixel_mialpha_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15616,6 +16917,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_rgb0 +#define FNAME_S(name) store_pixel_mialpha_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15634,6 +16936,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_r00a +#define FNAME_S(name) store_pixel_mialpha_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15643,6 +16946,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_0g0a +#define FNAME_S(name) store_pixel_mialpha_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15652,6 +16956,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_rg0a +#define FNAME_S(name) store_pixel_mialpha_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15670,6 +16975,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_r0ba +#define FNAME_S(name) store_pixel_mialpha_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15679,6 +16985,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_0gba +#define FNAME_S(name) store_pixel_mialpha_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15688,6 +16995,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_ccolor_rgba +#define FNAME_S(name) store_pixel_mialpha_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15706,6 +17014,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_r000 +#define FNAME_S(name) store_pixel_mialpha_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15715,6 +17024,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_0g00 +#define FNAME_S(name) store_pixel_mialpha_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15724,6 +17034,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_rg00 +#define FNAME_S(name) store_pixel_mialpha_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15742,6 +17053,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_r0b0 +#define FNAME_S(name) store_pixel_mialpha_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15751,6 +17063,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_0gb0 +#define FNAME_S(name) store_pixel_mialpha_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15760,6 +17073,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_rgb0 +#define FNAME_S(name) store_pixel_mialpha_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15778,6 +17092,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_r00a +#define FNAME_S(name) store_pixel_mialpha_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15787,6 +17102,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_0g0a +#define FNAME_S(name) store_pixel_mialpha_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15796,6 +17112,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_rg0a +#define FNAME_S(name) store_pixel_mialpha_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15814,6 +17131,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_r0ba +#define FNAME_S(name) store_pixel_mialpha_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15823,6 +17141,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_0gba +#define FNAME_S(name) store_pixel_mialpha_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15832,6 +17151,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mccolor_rgba +#define FNAME_S(name) store_pixel_mialpha_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15850,6 +17170,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_r000 +#define FNAME_S(name) store_pixel_mialpha_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15859,6 +17180,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_0g00 +#define FNAME_S(name) store_pixel_mialpha_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15868,6 +17190,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_rg00 +#define FNAME_S(name) store_pixel_mialpha_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15886,6 +17209,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_r0b0 +#define FNAME_S(name) store_pixel_mialpha_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15895,6 +17219,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_0gb0 +#define FNAME_S(name) store_pixel_mialpha_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15904,6 +17229,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_rgb0 +#define FNAME_S(name) store_pixel_mialpha_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15922,6 +17248,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_r00a +#define FNAME_S(name) store_pixel_mialpha_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15931,6 +17258,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_0g0a +#define FNAME_S(name) store_pixel_mialpha_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15940,6 +17268,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_rg0a +#define FNAME_S(name) store_pixel_mialpha_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15958,6 +17287,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_r0ba +#define FNAME_S(name) store_pixel_mialpha_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15967,6 +17297,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_0gba +#define FNAME_S(name) store_pixel_mialpha_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -15976,6 +17307,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_calpha_rgba +#define FNAME_S(name) store_pixel_mialpha_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -15994,6 +17326,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_r000 +#define FNAME_S(name) store_pixel_mialpha_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16003,6 +17336,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_0g00 +#define FNAME_S(name) store_pixel_mialpha_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16012,6 +17346,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_rg00 +#define FNAME_S(name) store_pixel_mialpha_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16030,6 +17365,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_mialpha_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16039,6 +17375,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_mialpha_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16048,6 +17385,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_mialpha_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16066,6 +17404,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_r00a +#define FNAME_S(name) store_pixel_mialpha_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16075,6 +17414,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_0g0a +#define FNAME_S(name) store_pixel_mialpha_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16084,6 +17424,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_rg0a +#define FNAME_S(name) store_pixel_mialpha_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16102,6 +17443,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_r0ba +#define FNAME_S(name) store_pixel_mialpha_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16111,6 +17453,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_0gba +#define FNAME_S(name) store_pixel_mialpha_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16120,6 +17463,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mialpha_mcalpha_rgba +#define FNAME_S(name) store_pixel_mialpha_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16138,6 +17482,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_r000 +#define FNAME_S(name) store_pixel_falpha_zero_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16147,6 +17492,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_0g00 +#define FNAME_S(name) store_pixel_falpha_zero_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16156,6 +17502,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_rg00 +#define FNAME_S(name) store_pixel_falpha_zero_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16174,6 +17521,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_r0b0 +#define FNAME_S(name) store_pixel_falpha_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16183,6 +17531,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_0gb0 +#define FNAME_S(name) store_pixel_falpha_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16192,6 +17541,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_rgb0 +#define FNAME_S(name) store_pixel_falpha_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16210,6 +17560,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_r00a +#define FNAME_S(name) store_pixel_falpha_zero_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16219,6 +17570,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_0g0a +#define FNAME_S(name) store_pixel_falpha_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16228,6 +17580,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_rg0a +#define FNAME_S(name) store_pixel_falpha_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16246,6 +17599,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_r0ba +#define FNAME_S(name) store_pixel_falpha_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16255,6 +17609,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_0gba +#define FNAME_S(name) store_pixel_falpha_zero_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16264,6 +17619,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_zero_rgba +#define FNAME_S(name) store_pixel_falpha_zero_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16282,6 +17638,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_r000 +#define FNAME_S(name) store_pixel_falpha_one_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16291,6 +17648,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_0g00 +#define FNAME_S(name) store_pixel_falpha_one_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16300,6 +17658,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_rg00 +#define FNAME_S(name) store_pixel_falpha_one_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16318,6 +17677,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_r0b0 +#define FNAME_S(name) store_pixel_falpha_one_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16327,6 +17687,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_0gb0 +#define FNAME_S(name) store_pixel_falpha_one_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16336,6 +17697,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_rgb0 +#define FNAME_S(name) store_pixel_falpha_one_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16354,6 +17716,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_r00a +#define FNAME_S(name) store_pixel_falpha_one_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16363,6 +17726,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_0g0a +#define FNAME_S(name) store_pixel_falpha_one_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16372,6 +17736,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_rg0a +#define FNAME_S(name) store_pixel_falpha_one_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16390,6 +17755,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_r0ba +#define FNAME_S(name) store_pixel_falpha_one_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16399,6 +17765,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_0gba +#define FNAME_S(name) store_pixel_falpha_one_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16408,6 +17775,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_one_rgba +#define FNAME_S(name) store_pixel_falpha_one_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16426,6 +17794,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_r000 +#define FNAME_S(name) store_pixel_falpha_icolor_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16435,6 +17804,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_0g00 +#define FNAME_S(name) store_pixel_falpha_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16444,6 +17814,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_rg00 +#define FNAME_S(name) store_pixel_falpha_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16462,6 +17833,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_r0b0 +#define FNAME_S(name) store_pixel_falpha_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16471,6 +17843,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_0gb0 +#define FNAME_S(name) store_pixel_falpha_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16480,6 +17853,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_rgb0 +#define FNAME_S(name) store_pixel_falpha_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16498,6 +17872,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_r00a +#define FNAME_S(name) store_pixel_falpha_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16507,6 +17882,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_0g0a +#define FNAME_S(name) store_pixel_falpha_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16516,6 +17892,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_rg0a +#define FNAME_S(name) store_pixel_falpha_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16534,6 +17911,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_r0ba +#define FNAME_S(name) store_pixel_falpha_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16543,6 +17921,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_0gba +#define FNAME_S(name) store_pixel_falpha_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16552,6 +17931,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_icolor_rgba +#define FNAME_S(name) store_pixel_falpha_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16570,6 +17950,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_r000 +#define FNAME_S(name) store_pixel_falpha_micolor_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16579,6 +17960,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_0g00 +#define FNAME_S(name) store_pixel_falpha_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16588,6 +17970,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_rg00 +#define FNAME_S(name) store_pixel_falpha_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16606,6 +17989,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_r0b0 +#define FNAME_S(name) store_pixel_falpha_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16615,6 +17999,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_0gb0 +#define FNAME_S(name) store_pixel_falpha_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16624,6 +18009,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_rgb0 +#define FNAME_S(name) store_pixel_falpha_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16642,6 +18028,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_r00a +#define FNAME_S(name) store_pixel_falpha_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16651,6 +18038,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_0g0a +#define FNAME_S(name) store_pixel_falpha_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16660,6 +18048,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_rg0a +#define FNAME_S(name) store_pixel_falpha_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16678,6 +18067,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_r0ba +#define FNAME_S(name) store_pixel_falpha_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16687,6 +18077,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_0gba +#define FNAME_S(name) store_pixel_falpha_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16696,6 +18087,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_micolor_rgba +#define FNAME_S(name) store_pixel_falpha_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16714,6 +18106,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_r000 +#define FNAME_S(name) store_pixel_falpha_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16723,6 +18116,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_0g00 +#define FNAME_S(name) store_pixel_falpha_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16732,6 +18126,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_rg00 +#define FNAME_S(name) store_pixel_falpha_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16750,6 +18145,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_r0b0 +#define FNAME_S(name) store_pixel_falpha_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16759,6 +18155,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_0gb0 +#define FNAME_S(name) store_pixel_falpha_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16768,6 +18165,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_rgb0 +#define FNAME_S(name) store_pixel_falpha_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16786,6 +18184,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_r00a +#define FNAME_S(name) store_pixel_falpha_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16795,6 +18194,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_0g0a +#define FNAME_S(name) store_pixel_falpha_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16804,6 +18204,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_rg0a +#define FNAME_S(name) store_pixel_falpha_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16822,6 +18223,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_r0ba +#define FNAME_S(name) store_pixel_falpha_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16831,6 +18233,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_0gba +#define FNAME_S(name) store_pixel_falpha_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16840,6 +18243,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_fcolor_rgba +#define FNAME_S(name) store_pixel_falpha_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16858,6 +18262,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_r000 +#define FNAME_S(name) store_pixel_falpha_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16867,6 +18272,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_0g00 +#define FNAME_S(name) store_pixel_falpha_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16876,6 +18282,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_rg00 +#define FNAME_S(name) store_pixel_falpha_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16894,6 +18301,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_falpha_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16903,6 +18311,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_falpha_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16912,6 +18321,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_falpha_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16930,6 +18340,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_r00a +#define FNAME_S(name) store_pixel_falpha_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16939,6 +18350,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_0g0a +#define FNAME_S(name) store_pixel_falpha_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16948,6 +18360,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_rg0a +#define FNAME_S(name) store_pixel_falpha_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16966,6 +18379,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_r0ba +#define FNAME_S(name) store_pixel_falpha_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -16975,6 +18389,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_0gba +#define FNAME_S(name) store_pixel_falpha_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -16984,6 +18399,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfcolor_rgba +#define FNAME_S(name) store_pixel_falpha_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17002,6 +18418,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_r000 +#define FNAME_S(name) store_pixel_falpha_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17011,6 +18428,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_0g00 +#define FNAME_S(name) store_pixel_falpha_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17020,6 +18438,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_rg00 +#define FNAME_S(name) store_pixel_falpha_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17038,6 +18457,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_r0b0 +#define FNAME_S(name) store_pixel_falpha_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17047,6 +18467,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_0gb0 +#define FNAME_S(name) store_pixel_falpha_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17056,6 +18477,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_rgb0 +#define FNAME_S(name) store_pixel_falpha_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17074,6 +18496,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_r00a +#define FNAME_S(name) store_pixel_falpha_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17083,6 +18506,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_0g0a +#define FNAME_S(name) store_pixel_falpha_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17092,6 +18516,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_rg0a +#define FNAME_S(name) store_pixel_falpha_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17110,6 +18535,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_r0ba +#define FNAME_S(name) store_pixel_falpha_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17119,6 +18545,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_0gba +#define FNAME_S(name) store_pixel_falpha_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17128,6 +18555,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ialpha_rgba +#define FNAME_S(name) store_pixel_falpha_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17146,6 +18574,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_r000 +#define FNAME_S(name) store_pixel_falpha_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17155,6 +18584,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_0g00 +#define FNAME_S(name) store_pixel_falpha_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17164,6 +18594,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_rg00 +#define FNAME_S(name) store_pixel_falpha_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17182,6 +18613,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_r0b0 +#define FNAME_S(name) store_pixel_falpha_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17191,6 +18623,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_0gb0 +#define FNAME_S(name) store_pixel_falpha_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17200,6 +18633,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_rgb0 +#define FNAME_S(name) store_pixel_falpha_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17218,6 +18652,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_r00a +#define FNAME_S(name) store_pixel_falpha_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17227,6 +18662,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_0g0a +#define FNAME_S(name) store_pixel_falpha_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17236,6 +18672,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_rg0a +#define FNAME_S(name) store_pixel_falpha_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17254,6 +18691,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_r0ba +#define FNAME_S(name) store_pixel_falpha_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17263,6 +18701,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_0gba +#define FNAME_S(name) store_pixel_falpha_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17272,6 +18711,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mialpha_rgba +#define FNAME_S(name) store_pixel_falpha_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17290,6 +18730,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_r000 +#define FNAME_S(name) store_pixel_falpha_falpha_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17299,6 +18740,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_0g00 +#define FNAME_S(name) store_pixel_falpha_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17308,6 +18750,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_rg00 +#define FNAME_S(name) store_pixel_falpha_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17326,6 +18769,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_r0b0 +#define FNAME_S(name) store_pixel_falpha_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17335,6 +18779,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_0gb0 +#define FNAME_S(name) store_pixel_falpha_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17344,6 +18789,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_rgb0 +#define FNAME_S(name) store_pixel_falpha_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17362,6 +18808,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_r00a +#define FNAME_S(name) store_pixel_falpha_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17371,6 +18818,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_0g0a +#define FNAME_S(name) store_pixel_falpha_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17380,6 +18828,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_rg0a +#define FNAME_S(name) store_pixel_falpha_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17398,6 +18847,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_r0ba +#define FNAME_S(name) store_pixel_falpha_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17407,6 +18857,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_0gba +#define FNAME_S(name) store_pixel_falpha_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17416,6 +18867,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_falpha_rgba +#define FNAME_S(name) store_pixel_falpha_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17434,6 +18886,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_r000 +#define FNAME_S(name) store_pixel_falpha_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17443,6 +18896,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_0g00 +#define FNAME_S(name) store_pixel_falpha_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17452,6 +18906,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_rg00 +#define FNAME_S(name) store_pixel_falpha_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17470,6 +18925,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_falpha_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17479,6 +18935,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_falpha_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17488,6 +18945,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_falpha_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17506,6 +18964,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_r00a +#define FNAME_S(name) store_pixel_falpha_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17515,6 +18974,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_0g0a +#define FNAME_S(name) store_pixel_falpha_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17524,6 +18984,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_rg0a +#define FNAME_S(name) store_pixel_falpha_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17542,6 +19003,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_r0ba +#define FNAME_S(name) store_pixel_falpha_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17551,6 +19013,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_0gba +#define FNAME_S(name) store_pixel_falpha_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17560,6 +19023,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mfalpha_rgba +#define FNAME_S(name) store_pixel_falpha_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17578,6 +19042,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_r000 +#define FNAME_S(name) store_pixel_falpha_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17587,6 +19052,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_0g00 +#define FNAME_S(name) store_pixel_falpha_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17596,6 +19062,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_rg00 +#define FNAME_S(name) store_pixel_falpha_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17614,6 +19081,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_r0b0 +#define FNAME_S(name) store_pixel_falpha_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17623,6 +19091,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_0gb0 +#define FNAME_S(name) store_pixel_falpha_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17632,6 +19101,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_rgb0 +#define FNAME_S(name) store_pixel_falpha_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17650,6 +19120,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_r00a +#define FNAME_S(name) store_pixel_falpha_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17659,6 +19130,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_0g0a +#define FNAME_S(name) store_pixel_falpha_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17668,6 +19140,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_rg0a +#define FNAME_S(name) store_pixel_falpha_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17686,6 +19159,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_r0ba +#define FNAME_S(name) store_pixel_falpha_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17695,6 +19169,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_0gba +#define FNAME_S(name) store_pixel_falpha_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17704,6 +19179,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_ccolor_rgba +#define FNAME_S(name) store_pixel_falpha_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17722,6 +19198,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_r000 +#define FNAME_S(name) store_pixel_falpha_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17731,6 +19208,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_0g00 +#define FNAME_S(name) store_pixel_falpha_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17740,6 +19218,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_rg00 +#define FNAME_S(name) store_pixel_falpha_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17758,6 +19237,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_r0b0 +#define FNAME_S(name) store_pixel_falpha_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17767,6 +19247,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_0gb0 +#define FNAME_S(name) store_pixel_falpha_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17776,6 +19257,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_rgb0 +#define FNAME_S(name) store_pixel_falpha_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17794,6 +19276,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_r00a +#define FNAME_S(name) store_pixel_falpha_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17803,6 +19286,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_0g0a +#define FNAME_S(name) store_pixel_falpha_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17812,6 +19296,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_rg0a +#define FNAME_S(name) store_pixel_falpha_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17830,6 +19315,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_r0ba +#define FNAME_S(name) store_pixel_falpha_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17839,6 +19325,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_0gba +#define FNAME_S(name) store_pixel_falpha_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17848,6 +19335,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mccolor_rgba +#define FNAME_S(name) store_pixel_falpha_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17866,6 +19354,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_r000 +#define FNAME_S(name) store_pixel_falpha_calpha_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17875,6 +19364,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_0g00 +#define FNAME_S(name) store_pixel_falpha_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17884,6 +19374,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_rg00 +#define FNAME_S(name) store_pixel_falpha_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17902,6 +19393,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_r0b0 +#define FNAME_S(name) store_pixel_falpha_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17911,6 +19403,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_0gb0 +#define FNAME_S(name) store_pixel_falpha_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17920,6 +19413,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_rgb0 +#define FNAME_S(name) store_pixel_falpha_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17938,6 +19432,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_r00a +#define FNAME_S(name) store_pixel_falpha_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17947,6 +19442,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_0g0a +#define FNAME_S(name) store_pixel_falpha_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17956,6 +19452,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_rg0a +#define FNAME_S(name) store_pixel_falpha_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17974,6 +19471,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_r0ba +#define FNAME_S(name) store_pixel_falpha_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -17983,6 +19481,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_0gba +#define FNAME_S(name) store_pixel_falpha_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -17992,6 +19491,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_calpha_rgba +#define FNAME_S(name) store_pixel_falpha_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18010,6 +19510,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_r000 +#define FNAME_S(name) store_pixel_falpha_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18019,6 +19520,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_0g00 +#define FNAME_S(name) store_pixel_falpha_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18028,6 +19530,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_rg00 +#define FNAME_S(name) store_pixel_falpha_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18046,6 +19549,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_falpha_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18055,6 +19559,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_falpha_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18064,6 +19569,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_falpha_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18082,6 +19588,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_r00a +#define FNAME_S(name) store_pixel_falpha_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18091,6 +19598,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_0g0a +#define FNAME_S(name) store_pixel_falpha_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18100,6 +19608,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_rg0a +#define FNAME_S(name) store_pixel_falpha_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18118,6 +19627,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_r0ba +#define FNAME_S(name) store_pixel_falpha_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18127,6 +19637,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_0gba +#define FNAME_S(name) store_pixel_falpha_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18136,6 +19647,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_falpha_mcalpha_rgba +#define FNAME_S(name) store_pixel_falpha_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18154,6 +19666,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_r000 +#define FNAME_S(name) store_pixel_mfalpha_zero_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18163,6 +19676,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_0g00 +#define FNAME_S(name) store_pixel_mfalpha_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18172,6 +19686,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_rg00 +#define FNAME_S(name) store_pixel_mfalpha_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18190,6 +19705,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18199,6 +19715,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18208,6 +19725,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18226,6 +19744,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_r00a +#define FNAME_S(name) store_pixel_mfalpha_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18235,6 +19754,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_0g0a +#define FNAME_S(name) store_pixel_mfalpha_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18244,6 +19764,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_rg0a +#define FNAME_S(name) store_pixel_mfalpha_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18262,6 +19783,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_r0ba +#define FNAME_S(name) store_pixel_mfalpha_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18271,6 +19793,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_0gba +#define FNAME_S(name) store_pixel_mfalpha_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18280,6 +19803,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_zero_rgba +#define FNAME_S(name) store_pixel_mfalpha_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18298,6 +19822,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_r000 +#define FNAME_S(name) store_pixel_mfalpha_one_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18307,6 +19832,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_0g00 +#define FNAME_S(name) store_pixel_mfalpha_one_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18316,6 +19842,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_rg00 +#define FNAME_S(name) store_pixel_mfalpha_one_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18334,6 +19861,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18343,6 +19871,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18352,6 +19881,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18370,6 +19900,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_r00a +#define FNAME_S(name) store_pixel_mfalpha_one_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18379,6 +19910,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_0g0a +#define FNAME_S(name) store_pixel_mfalpha_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18388,6 +19920,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_rg0a +#define FNAME_S(name) store_pixel_mfalpha_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18406,6 +19939,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_r0ba +#define FNAME_S(name) store_pixel_mfalpha_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18415,6 +19949,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_0gba +#define FNAME_S(name) store_pixel_mfalpha_one_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18424,6 +19959,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_one_rgba +#define FNAME_S(name) store_pixel_mfalpha_one_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18442,6 +19978,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_r000 +#define FNAME_S(name) store_pixel_mfalpha_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18451,6 +19988,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_0g00 +#define FNAME_S(name) store_pixel_mfalpha_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18460,6 +19998,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_rg00 +#define FNAME_S(name) store_pixel_mfalpha_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18478,6 +20017,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18487,6 +20027,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18496,6 +20037,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18514,6 +20056,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_r00a +#define FNAME_S(name) store_pixel_mfalpha_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18523,6 +20066,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_0g0a +#define FNAME_S(name) store_pixel_mfalpha_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18532,6 +20076,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_rg0a +#define FNAME_S(name) store_pixel_mfalpha_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18550,6 +20095,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_r0ba +#define FNAME_S(name) store_pixel_mfalpha_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18559,6 +20105,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_0gba +#define FNAME_S(name) store_pixel_mfalpha_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18568,6 +20115,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_icolor_rgba +#define FNAME_S(name) store_pixel_mfalpha_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18586,6 +20134,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_r000 +#define FNAME_S(name) store_pixel_mfalpha_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18595,6 +20144,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_0g00 +#define FNAME_S(name) store_pixel_mfalpha_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18604,6 +20154,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_rg00 +#define FNAME_S(name) store_pixel_mfalpha_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18622,6 +20173,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18631,6 +20183,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18640,6 +20193,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18658,6 +20212,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_r00a +#define FNAME_S(name) store_pixel_mfalpha_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18667,6 +20222,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_0g0a +#define FNAME_S(name) store_pixel_mfalpha_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18676,6 +20232,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_rg0a +#define FNAME_S(name) store_pixel_mfalpha_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18694,6 +20251,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_r0ba +#define FNAME_S(name) store_pixel_mfalpha_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18703,6 +20261,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_0gba +#define FNAME_S(name) store_pixel_mfalpha_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18712,6 +20271,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_micolor_rgba +#define FNAME_S(name) store_pixel_mfalpha_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18730,6 +20290,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_r000 +#define FNAME_S(name) store_pixel_mfalpha_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18739,6 +20300,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_0g00 +#define FNAME_S(name) store_pixel_mfalpha_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18748,6 +20310,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_rg00 +#define FNAME_S(name) store_pixel_mfalpha_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18766,6 +20329,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18775,6 +20339,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18784,6 +20349,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18802,6 +20368,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_r00a +#define FNAME_S(name) store_pixel_mfalpha_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18811,6 +20378,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_0g0a +#define FNAME_S(name) store_pixel_mfalpha_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18820,6 +20388,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_rg0a +#define FNAME_S(name) store_pixel_mfalpha_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18838,6 +20407,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_r0ba +#define FNAME_S(name) store_pixel_mfalpha_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18847,6 +20417,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_0gba +#define FNAME_S(name) store_pixel_mfalpha_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18856,6 +20427,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_fcolor_rgba +#define FNAME_S(name) store_pixel_mfalpha_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18874,6 +20446,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_r000 +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18883,6 +20456,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_0g00 +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18892,6 +20466,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_rg00 +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18910,6 +20485,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18919,6 +20495,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18928,6 +20505,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18946,6 +20524,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_r00a +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18955,6 +20534,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_0g0a +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -18964,6 +20544,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_rg0a +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18982,6 +20563,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_r0ba +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -18991,6 +20573,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_0gba +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19000,6 +20583,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfcolor_rgba +#define FNAME_S(name) store_pixel_mfalpha_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19018,6 +20602,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_r000 +#define FNAME_S(name) store_pixel_mfalpha_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19027,6 +20612,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_0g00 +#define FNAME_S(name) store_pixel_mfalpha_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19036,6 +20622,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_rg00 +#define FNAME_S(name) store_pixel_mfalpha_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19054,6 +20641,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19063,6 +20651,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19072,6 +20661,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19090,6 +20680,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_r00a +#define FNAME_S(name) store_pixel_mfalpha_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19099,6 +20690,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_0g0a +#define FNAME_S(name) store_pixel_mfalpha_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19108,6 +20700,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_rg0a +#define FNAME_S(name) store_pixel_mfalpha_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19126,6 +20719,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_r0ba +#define FNAME_S(name) store_pixel_mfalpha_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19135,6 +20729,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_0gba +#define FNAME_S(name) store_pixel_mfalpha_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19144,6 +20739,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ialpha_rgba +#define FNAME_S(name) store_pixel_mfalpha_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19162,6 +20758,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_r000 +#define FNAME_S(name) store_pixel_mfalpha_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19171,6 +20768,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_0g00 +#define FNAME_S(name) store_pixel_mfalpha_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19180,6 +20778,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_rg00 +#define FNAME_S(name) store_pixel_mfalpha_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19198,6 +20797,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19207,6 +20807,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19216,6 +20817,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19234,6 +20836,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_r00a +#define FNAME_S(name) store_pixel_mfalpha_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19243,6 +20846,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_0g0a +#define FNAME_S(name) store_pixel_mfalpha_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19252,6 +20856,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_rg0a +#define FNAME_S(name) store_pixel_mfalpha_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19270,6 +20875,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_r0ba +#define FNAME_S(name) store_pixel_mfalpha_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19279,6 +20885,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_0gba +#define FNAME_S(name) store_pixel_mfalpha_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19288,6 +20895,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mialpha_rgba +#define FNAME_S(name) store_pixel_mfalpha_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19306,6 +20914,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_r000 +#define FNAME_S(name) store_pixel_mfalpha_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19315,6 +20924,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_0g00 +#define FNAME_S(name) store_pixel_mfalpha_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19324,6 +20934,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_rg00 +#define FNAME_S(name) store_pixel_mfalpha_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19342,6 +20953,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19351,6 +20963,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19360,6 +20973,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19378,6 +20992,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_r00a +#define FNAME_S(name) store_pixel_mfalpha_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19387,6 +21002,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_0g0a +#define FNAME_S(name) store_pixel_mfalpha_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19396,6 +21012,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_rg0a +#define FNAME_S(name) store_pixel_mfalpha_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19414,6 +21031,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_r0ba +#define FNAME_S(name) store_pixel_mfalpha_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19423,6 +21041,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_0gba +#define FNAME_S(name) store_pixel_mfalpha_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19432,6 +21051,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_falpha_rgba +#define FNAME_S(name) store_pixel_mfalpha_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19450,6 +21070,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_r000 +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19459,6 +21080,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_0g00 +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19468,6 +21090,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_rg00 +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19486,6 +21109,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19495,6 +21119,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19504,6 +21129,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19522,6 +21148,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_r00a +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19531,6 +21158,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_0g0a +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19540,6 +21168,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_rg0a +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19558,6 +21187,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_r0ba +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19567,6 +21197,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_0gba +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19576,6 +21207,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mfalpha_rgba +#define FNAME_S(name) store_pixel_mfalpha_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19594,6 +21226,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_r000 +#define FNAME_S(name) store_pixel_mfalpha_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19603,6 +21236,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_0g00 +#define FNAME_S(name) store_pixel_mfalpha_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19612,6 +21246,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_rg00 +#define FNAME_S(name) store_pixel_mfalpha_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19630,6 +21265,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19639,6 +21275,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19648,6 +21285,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19666,6 +21304,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_r00a +#define FNAME_S(name) store_pixel_mfalpha_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19675,6 +21314,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_0g0a +#define FNAME_S(name) store_pixel_mfalpha_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19684,6 +21324,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_rg0a +#define FNAME_S(name) store_pixel_mfalpha_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19702,6 +21343,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_r0ba +#define FNAME_S(name) store_pixel_mfalpha_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19711,6 +21353,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_0gba +#define FNAME_S(name) store_pixel_mfalpha_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19720,6 +21363,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_ccolor_rgba +#define FNAME_S(name) store_pixel_mfalpha_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19738,6 +21382,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_r000 +#define FNAME_S(name) store_pixel_mfalpha_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19747,6 +21392,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_0g00 +#define FNAME_S(name) store_pixel_mfalpha_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19756,6 +21402,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_rg00 +#define FNAME_S(name) store_pixel_mfalpha_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19774,6 +21421,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19783,6 +21431,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19792,6 +21441,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19810,6 +21460,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_r00a +#define FNAME_S(name) store_pixel_mfalpha_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19819,6 +21470,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_0g0a +#define FNAME_S(name) store_pixel_mfalpha_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19828,6 +21480,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_rg0a +#define FNAME_S(name) store_pixel_mfalpha_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19846,6 +21499,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_r0ba +#define FNAME_S(name) store_pixel_mfalpha_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19855,6 +21509,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_0gba +#define FNAME_S(name) store_pixel_mfalpha_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19864,6 +21519,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mccolor_rgba +#define FNAME_S(name) store_pixel_mfalpha_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19882,6 +21538,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_r000 +#define FNAME_S(name) store_pixel_mfalpha_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19891,6 +21548,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_0g00 +#define FNAME_S(name) store_pixel_mfalpha_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19900,6 +21558,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_rg00 +#define FNAME_S(name) store_pixel_mfalpha_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19918,6 +21577,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19927,6 +21587,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19936,6 +21597,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19954,6 +21616,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_r00a +#define FNAME_S(name) store_pixel_mfalpha_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19963,6 +21626,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_0g0a +#define FNAME_S(name) store_pixel_mfalpha_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -19972,6 +21636,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_rg0a +#define FNAME_S(name) store_pixel_mfalpha_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19990,6 +21655,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_r0ba +#define FNAME_S(name) store_pixel_mfalpha_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -19999,6 +21665,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_0gba +#define FNAME_S(name) store_pixel_mfalpha_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20008,6 +21675,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_calpha_rgba +#define FNAME_S(name) store_pixel_mfalpha_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20026,6 +21694,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_r000 +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20035,6 +21704,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_0g00 +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20044,6 +21714,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_rg00 +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20062,6 +21733,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20071,6 +21743,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20080,6 +21753,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20098,6 +21772,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_r00a +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20107,6 +21782,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_0g0a +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20116,6 +21792,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_rg0a +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20134,6 +21811,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_r0ba +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20143,6 +21821,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_0gba +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20152,6 +21831,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mfalpha_mcalpha_rgba +#define FNAME_S(name) store_pixel_mfalpha_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - fa)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20170,6 +21850,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_r000 +#define FNAME_S(name) store_pixel_ccolor_zero_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20179,6 +21860,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_0g00 +#define FNAME_S(name) store_pixel_ccolor_zero_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20188,6 +21870,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_rg00 +#define FNAME_S(name) store_pixel_ccolor_zero_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20206,6 +21889,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_r0b0 +#define FNAME_S(name) store_pixel_ccolor_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20215,6 +21899,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_0gb0 +#define FNAME_S(name) store_pixel_ccolor_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20224,6 +21909,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_rgb0 +#define FNAME_S(name) store_pixel_ccolor_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20242,6 +21928,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_r00a +#define FNAME_S(name) store_pixel_ccolor_zero_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20251,6 +21938,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_0g0a +#define FNAME_S(name) store_pixel_ccolor_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20260,6 +21948,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_rg0a +#define FNAME_S(name) store_pixel_ccolor_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20278,6 +21967,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_r0ba +#define FNAME_S(name) store_pixel_ccolor_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20287,6 +21977,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_0gba +#define FNAME_S(name) store_pixel_ccolor_zero_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20296,6 +21987,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_zero_rgba +#define FNAME_S(name) store_pixel_ccolor_zero_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20314,6 +22006,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_r000 +#define FNAME_S(name) store_pixel_ccolor_one_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20323,6 +22016,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_0g00 +#define FNAME_S(name) store_pixel_ccolor_one_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20332,6 +22026,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_rg00 +#define FNAME_S(name) store_pixel_ccolor_one_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20350,6 +22045,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_r0b0 +#define FNAME_S(name) store_pixel_ccolor_one_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20359,6 +22055,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_0gb0 +#define FNAME_S(name) store_pixel_ccolor_one_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20368,6 +22065,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_rgb0 +#define FNAME_S(name) store_pixel_ccolor_one_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20386,6 +22084,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_r00a +#define FNAME_S(name) store_pixel_ccolor_one_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20395,6 +22094,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_0g0a +#define FNAME_S(name) store_pixel_ccolor_one_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20404,6 +22104,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_rg0a +#define FNAME_S(name) store_pixel_ccolor_one_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20422,6 +22123,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_r0ba +#define FNAME_S(name) store_pixel_ccolor_one_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20431,6 +22133,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_0gba +#define FNAME_S(name) store_pixel_ccolor_one_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20440,6 +22143,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_one_rgba +#define FNAME_S(name) store_pixel_ccolor_one_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20458,6 +22162,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_r000 +#define FNAME_S(name) store_pixel_ccolor_icolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20467,6 +22172,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_0g00 +#define FNAME_S(name) store_pixel_ccolor_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20476,6 +22182,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_rg00 +#define FNAME_S(name) store_pixel_ccolor_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20494,6 +22201,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_r0b0 +#define FNAME_S(name) store_pixel_ccolor_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20503,6 +22211,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_0gb0 +#define FNAME_S(name) store_pixel_ccolor_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20512,6 +22221,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_rgb0 +#define FNAME_S(name) store_pixel_ccolor_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20530,6 +22240,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_r00a +#define FNAME_S(name) store_pixel_ccolor_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20539,6 +22250,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_0g0a +#define FNAME_S(name) store_pixel_ccolor_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20548,6 +22260,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_rg0a +#define FNAME_S(name) store_pixel_ccolor_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20566,6 +22279,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_r0ba +#define FNAME_S(name) store_pixel_ccolor_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20575,6 +22289,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_0gba +#define FNAME_S(name) store_pixel_ccolor_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20584,6 +22299,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_icolor_rgba +#define FNAME_S(name) store_pixel_ccolor_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20602,6 +22318,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_r000 +#define FNAME_S(name) store_pixel_ccolor_micolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20611,6 +22328,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_0g00 +#define FNAME_S(name) store_pixel_ccolor_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20620,6 +22338,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_rg00 +#define FNAME_S(name) store_pixel_ccolor_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20638,6 +22357,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_r0b0 +#define FNAME_S(name) store_pixel_ccolor_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20647,6 +22367,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_0gb0 +#define FNAME_S(name) store_pixel_ccolor_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20656,6 +22377,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_rgb0 +#define FNAME_S(name) store_pixel_ccolor_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20674,6 +22396,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_r00a +#define FNAME_S(name) store_pixel_ccolor_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20683,6 +22406,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_0g0a +#define FNAME_S(name) store_pixel_ccolor_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20692,6 +22416,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_rg0a +#define FNAME_S(name) store_pixel_ccolor_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20710,6 +22435,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_r0ba +#define FNAME_S(name) store_pixel_ccolor_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20719,6 +22445,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_0gba +#define FNAME_S(name) store_pixel_ccolor_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20728,6 +22455,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_micolor_rgba +#define FNAME_S(name) store_pixel_ccolor_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20746,6 +22474,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_r000 +#define FNAME_S(name) store_pixel_ccolor_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20755,6 +22484,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_0g00 +#define FNAME_S(name) store_pixel_ccolor_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20764,6 +22494,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_rg00 +#define FNAME_S(name) store_pixel_ccolor_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20782,6 +22513,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_r0b0 +#define FNAME_S(name) store_pixel_ccolor_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20791,6 +22523,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_0gb0 +#define FNAME_S(name) store_pixel_ccolor_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20800,6 +22533,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_rgb0 +#define FNAME_S(name) store_pixel_ccolor_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20818,6 +22552,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_r00a +#define FNAME_S(name) store_pixel_ccolor_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20827,6 +22562,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_0g0a +#define FNAME_S(name) store_pixel_ccolor_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20836,6 +22572,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_rg0a +#define FNAME_S(name) store_pixel_ccolor_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20854,6 +22591,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_r0ba +#define FNAME_S(name) store_pixel_ccolor_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20863,6 +22601,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_0gba +#define FNAME_S(name) store_pixel_ccolor_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20872,6 +22611,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_fcolor_rgba +#define FNAME_S(name) store_pixel_ccolor_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20890,6 +22630,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_r000 +#define FNAME_S(name) store_pixel_ccolor_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20899,6 +22640,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_0g00 +#define FNAME_S(name) store_pixel_ccolor_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20908,6 +22650,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_rg00 +#define FNAME_S(name) store_pixel_ccolor_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20926,6 +22669,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_ccolor_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20935,6 +22679,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_ccolor_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20944,6 +22689,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_ccolor_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20962,6 +22708,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_r00a +#define FNAME_S(name) store_pixel_ccolor_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20971,6 +22718,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_0g0a +#define FNAME_S(name) store_pixel_ccolor_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -20980,6 +22728,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_rg0a +#define FNAME_S(name) store_pixel_ccolor_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -20998,6 +22747,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_r0ba +#define FNAME_S(name) store_pixel_ccolor_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21007,6 +22757,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_0gba +#define FNAME_S(name) store_pixel_ccolor_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21016,6 +22767,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfcolor_rgba +#define FNAME_S(name) store_pixel_ccolor_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21034,6 +22786,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_r000 +#define FNAME_S(name) store_pixel_ccolor_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21043,6 +22796,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_0g00 +#define FNAME_S(name) store_pixel_ccolor_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21052,6 +22806,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_rg00 +#define FNAME_S(name) store_pixel_ccolor_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21070,6 +22825,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_r0b0 +#define FNAME_S(name) store_pixel_ccolor_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21079,6 +22835,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_0gb0 +#define FNAME_S(name) store_pixel_ccolor_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21088,6 +22845,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_rgb0 +#define FNAME_S(name) store_pixel_ccolor_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21106,6 +22864,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_r00a +#define FNAME_S(name) store_pixel_ccolor_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21115,6 +22874,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_0g0a +#define FNAME_S(name) store_pixel_ccolor_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21124,6 +22884,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_rg0a +#define FNAME_S(name) store_pixel_ccolor_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21142,6 +22903,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_r0ba +#define FNAME_S(name) store_pixel_ccolor_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21151,6 +22913,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_0gba +#define FNAME_S(name) store_pixel_ccolor_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21160,6 +22923,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ialpha_rgba +#define FNAME_S(name) store_pixel_ccolor_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21178,6 +22942,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_r000 +#define FNAME_S(name) store_pixel_ccolor_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21187,6 +22952,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_0g00 +#define FNAME_S(name) store_pixel_ccolor_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21196,6 +22962,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_rg00 +#define FNAME_S(name) store_pixel_ccolor_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21214,6 +22981,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_r0b0 +#define FNAME_S(name) store_pixel_ccolor_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21223,6 +22991,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_0gb0 +#define FNAME_S(name) store_pixel_ccolor_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21232,6 +23001,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_rgb0 +#define FNAME_S(name) store_pixel_ccolor_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21250,6 +23020,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_r00a +#define FNAME_S(name) store_pixel_ccolor_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21259,6 +23030,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_0g0a +#define FNAME_S(name) store_pixel_ccolor_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21268,6 +23040,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_rg0a +#define FNAME_S(name) store_pixel_ccolor_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21286,6 +23059,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_r0ba +#define FNAME_S(name) store_pixel_ccolor_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21295,6 +23069,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_0gba +#define FNAME_S(name) store_pixel_ccolor_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21304,6 +23079,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mialpha_rgba +#define FNAME_S(name) store_pixel_ccolor_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21322,6 +23098,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_r000 +#define FNAME_S(name) store_pixel_ccolor_falpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21331,6 +23108,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_0g00 +#define FNAME_S(name) store_pixel_ccolor_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21340,6 +23118,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_rg00 +#define FNAME_S(name) store_pixel_ccolor_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21358,6 +23137,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_r0b0 +#define FNAME_S(name) store_pixel_ccolor_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21367,6 +23147,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_0gb0 +#define FNAME_S(name) store_pixel_ccolor_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21376,6 +23157,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_rgb0 +#define FNAME_S(name) store_pixel_ccolor_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21394,6 +23176,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_r00a +#define FNAME_S(name) store_pixel_ccolor_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21403,6 +23186,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_0g0a +#define FNAME_S(name) store_pixel_ccolor_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21412,6 +23196,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_rg0a +#define FNAME_S(name) store_pixel_ccolor_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21430,6 +23215,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_r0ba +#define FNAME_S(name) store_pixel_ccolor_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21439,6 +23225,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_0gba +#define FNAME_S(name) store_pixel_ccolor_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21448,6 +23235,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_falpha_rgba +#define FNAME_S(name) store_pixel_ccolor_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21466,6 +23254,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_r000 +#define FNAME_S(name) store_pixel_ccolor_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21475,6 +23264,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_0g00 +#define FNAME_S(name) store_pixel_ccolor_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21484,6 +23274,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_rg00 +#define FNAME_S(name) store_pixel_ccolor_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21502,6 +23293,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_ccolor_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21511,6 +23303,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_ccolor_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21520,6 +23313,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_ccolor_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21538,6 +23332,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_r00a +#define FNAME_S(name) store_pixel_ccolor_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21547,6 +23342,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_0g0a +#define FNAME_S(name) store_pixel_ccolor_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21556,6 +23352,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_rg0a +#define FNAME_S(name) store_pixel_ccolor_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21574,6 +23371,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_r0ba +#define FNAME_S(name) store_pixel_ccolor_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21583,6 +23381,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_0gba +#define FNAME_S(name) store_pixel_ccolor_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21592,6 +23391,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mfalpha_rgba +#define FNAME_S(name) store_pixel_ccolor_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21610,6 +23410,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_r000 +#define FNAME_S(name) store_pixel_ccolor_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21619,6 +23420,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_0g00 +#define FNAME_S(name) store_pixel_ccolor_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21628,6 +23430,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_rg00 +#define FNAME_S(name) store_pixel_ccolor_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21646,6 +23449,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_r0b0 +#define FNAME_S(name) store_pixel_ccolor_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21655,6 +23459,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_0gb0 +#define FNAME_S(name) store_pixel_ccolor_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21664,6 +23469,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_rgb0 +#define FNAME_S(name) store_pixel_ccolor_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21682,6 +23488,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_r00a +#define FNAME_S(name) store_pixel_ccolor_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21691,6 +23498,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_0g0a +#define FNAME_S(name) store_pixel_ccolor_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21700,6 +23508,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_rg0a +#define FNAME_S(name) store_pixel_ccolor_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21718,6 +23527,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_r0ba +#define FNAME_S(name) store_pixel_ccolor_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21727,6 +23537,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_0gba +#define FNAME_S(name) store_pixel_ccolor_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21736,6 +23547,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_ccolor_rgba +#define FNAME_S(name) store_pixel_ccolor_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21754,6 +23566,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_r000 +#define FNAME_S(name) store_pixel_ccolor_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21763,6 +23576,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_0g00 +#define FNAME_S(name) store_pixel_ccolor_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21772,6 +23586,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_rg00 +#define FNAME_S(name) store_pixel_ccolor_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21790,6 +23605,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_r0b0 +#define FNAME_S(name) store_pixel_ccolor_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21799,6 +23615,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_0gb0 +#define FNAME_S(name) store_pixel_ccolor_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21808,6 +23625,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_rgb0 +#define FNAME_S(name) store_pixel_ccolor_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21826,6 +23644,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_r00a +#define FNAME_S(name) store_pixel_ccolor_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21835,6 +23654,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_0g0a +#define FNAME_S(name) store_pixel_ccolor_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21844,6 +23664,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_rg0a +#define FNAME_S(name) store_pixel_ccolor_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21862,6 +23683,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_r0ba +#define FNAME_S(name) store_pixel_ccolor_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21871,6 +23693,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_0gba +#define FNAME_S(name) store_pixel_ccolor_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21880,6 +23703,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mccolor_rgba +#define FNAME_S(name) store_pixel_ccolor_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21898,6 +23722,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_r000 +#define FNAME_S(name) store_pixel_ccolor_calpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21907,6 +23732,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_0g00 +#define FNAME_S(name) store_pixel_ccolor_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21916,6 +23742,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_rg00 +#define FNAME_S(name) store_pixel_ccolor_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21934,6 +23761,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_r0b0 +#define FNAME_S(name) store_pixel_ccolor_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21943,6 +23771,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_0gb0 +#define FNAME_S(name) store_pixel_ccolor_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21952,6 +23781,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_rgb0 +#define FNAME_S(name) store_pixel_ccolor_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21970,6 +23800,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_r00a +#define FNAME_S(name) store_pixel_ccolor_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -21979,6 +23810,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_0g0a +#define FNAME_S(name) store_pixel_ccolor_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -21988,6 +23820,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_rg0a +#define FNAME_S(name) store_pixel_ccolor_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22006,6 +23839,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_r0ba +#define FNAME_S(name) store_pixel_ccolor_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22015,6 +23849,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_0gba +#define FNAME_S(name) store_pixel_ccolor_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22024,6 +23859,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_calpha_rgba +#define FNAME_S(name) store_pixel_ccolor_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22042,6 +23878,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_r000 +#define FNAME_S(name) store_pixel_ccolor_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22051,6 +23888,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_0g00 +#define FNAME_S(name) store_pixel_ccolor_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22060,6 +23898,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_rg00 +#define FNAME_S(name) store_pixel_ccolor_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22078,6 +23917,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_ccolor_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22087,6 +23927,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_ccolor_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22096,6 +23937,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_ccolor_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22114,6 +23956,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_r00a +#define FNAME_S(name) store_pixel_ccolor_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22123,6 +23966,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_0g0a +#define FNAME_S(name) store_pixel_ccolor_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22132,6 +23976,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_rg0a +#define FNAME_S(name) store_pixel_ccolor_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22150,6 +23995,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_r0ba +#define FNAME_S(name) store_pixel_ccolor_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22159,6 +24005,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_0gba +#define FNAME_S(name) store_pixel_ccolor_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22168,6 +24015,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_ccolor_mcalpha_rgba +#define FNAME_S(name) store_pixel_ccolor_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22186,6 +24034,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_r000 +#define FNAME_S(name) store_pixel_mccolor_zero_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22195,6 +24044,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_0g00 +#define FNAME_S(name) store_pixel_mccolor_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22204,6 +24054,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_rg00 +#define FNAME_S(name) store_pixel_mccolor_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22222,6 +24073,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_r0b0 +#define FNAME_S(name) store_pixel_mccolor_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22231,6 +24083,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_0gb0 +#define FNAME_S(name) store_pixel_mccolor_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22240,6 +24093,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_rgb0 +#define FNAME_S(name) store_pixel_mccolor_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22258,6 +24112,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_r00a +#define FNAME_S(name) store_pixel_mccolor_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22267,6 +24122,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_0g0a +#define FNAME_S(name) store_pixel_mccolor_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22276,6 +24132,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_rg0a +#define FNAME_S(name) store_pixel_mccolor_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22294,6 +24151,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_r0ba +#define FNAME_S(name) store_pixel_mccolor_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22303,6 +24161,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_0gba +#define FNAME_S(name) store_pixel_mccolor_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22312,6 +24171,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_zero_rgba +#define FNAME_S(name) store_pixel_mccolor_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22330,6 +24190,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_r000 +#define FNAME_S(name) store_pixel_mccolor_one_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22339,6 +24200,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_0g00 +#define FNAME_S(name) store_pixel_mccolor_one_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22348,6 +24210,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_rg00 +#define FNAME_S(name) store_pixel_mccolor_one_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22366,6 +24229,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_r0b0 +#define FNAME_S(name) store_pixel_mccolor_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22375,6 +24239,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_0gb0 +#define FNAME_S(name) store_pixel_mccolor_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22384,6 +24249,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_rgb0 +#define FNAME_S(name) store_pixel_mccolor_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22402,6 +24268,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_r00a +#define FNAME_S(name) store_pixel_mccolor_one_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22411,6 +24278,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_0g0a +#define FNAME_S(name) store_pixel_mccolor_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22420,6 +24288,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_rg0a +#define FNAME_S(name) store_pixel_mccolor_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22438,6 +24307,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_r0ba +#define FNAME_S(name) store_pixel_mccolor_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22447,6 +24317,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_0gba +#define FNAME_S(name) store_pixel_mccolor_one_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22456,6 +24327,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_one_rgba +#define FNAME_S(name) store_pixel_mccolor_one_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22474,6 +24346,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_r000 +#define FNAME_S(name) store_pixel_mccolor_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22483,6 +24356,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_0g00 +#define FNAME_S(name) store_pixel_mccolor_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22492,6 +24366,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_rg00 +#define FNAME_S(name) store_pixel_mccolor_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22510,6 +24385,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_r0b0 +#define FNAME_S(name) store_pixel_mccolor_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22519,6 +24395,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_0gb0 +#define FNAME_S(name) store_pixel_mccolor_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22528,6 +24405,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_rgb0 +#define FNAME_S(name) store_pixel_mccolor_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22546,6 +24424,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_r00a +#define FNAME_S(name) store_pixel_mccolor_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22555,6 +24434,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_0g0a +#define FNAME_S(name) store_pixel_mccolor_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22564,6 +24444,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_rg0a +#define FNAME_S(name) store_pixel_mccolor_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22582,6 +24463,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_r0ba +#define FNAME_S(name) store_pixel_mccolor_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22591,6 +24473,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_0gba +#define FNAME_S(name) store_pixel_mccolor_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22600,6 +24483,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_icolor_rgba +#define FNAME_S(name) store_pixel_mccolor_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22618,6 +24502,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_r000 +#define FNAME_S(name) store_pixel_mccolor_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22627,6 +24512,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_0g00 +#define FNAME_S(name) store_pixel_mccolor_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22636,6 +24522,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_rg00 +#define FNAME_S(name) store_pixel_mccolor_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22654,6 +24541,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_r0b0 +#define FNAME_S(name) store_pixel_mccolor_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22663,6 +24551,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_0gb0 +#define FNAME_S(name) store_pixel_mccolor_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22672,6 +24561,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_rgb0 +#define FNAME_S(name) store_pixel_mccolor_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22690,6 +24580,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_r00a +#define FNAME_S(name) store_pixel_mccolor_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22699,6 +24590,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_0g0a +#define FNAME_S(name) store_pixel_mccolor_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22708,6 +24600,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_rg0a +#define FNAME_S(name) store_pixel_mccolor_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22726,6 +24619,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_r0ba +#define FNAME_S(name) store_pixel_mccolor_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22735,6 +24629,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_0gba +#define FNAME_S(name) store_pixel_mccolor_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22744,6 +24639,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_micolor_rgba +#define FNAME_S(name) store_pixel_mccolor_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22762,6 +24658,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_r000 +#define FNAME_S(name) store_pixel_mccolor_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22771,6 +24668,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_0g00 +#define FNAME_S(name) store_pixel_mccolor_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22780,6 +24678,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_rg00 +#define FNAME_S(name) store_pixel_mccolor_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22798,6 +24697,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_r0b0 +#define FNAME_S(name) store_pixel_mccolor_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22807,6 +24707,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_0gb0 +#define FNAME_S(name) store_pixel_mccolor_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22816,6 +24717,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_rgb0 +#define FNAME_S(name) store_pixel_mccolor_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22834,6 +24736,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_r00a +#define FNAME_S(name) store_pixel_mccolor_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22843,6 +24746,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_0g0a +#define FNAME_S(name) store_pixel_mccolor_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22852,6 +24756,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_rg0a +#define FNAME_S(name) store_pixel_mccolor_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22870,6 +24775,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_r0ba +#define FNAME_S(name) store_pixel_mccolor_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22879,6 +24785,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_0gba +#define FNAME_S(name) store_pixel_mccolor_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22888,6 +24795,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_fcolor_rgba +#define FNAME_S(name) store_pixel_mccolor_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22906,6 +24814,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_r000 +#define FNAME_S(name) store_pixel_mccolor_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22915,6 +24824,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_0g00 +#define FNAME_S(name) store_pixel_mccolor_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22924,6 +24834,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_rg00 +#define FNAME_S(name) store_pixel_mccolor_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22942,6 +24853,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_mccolor_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22951,6 +24863,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_mccolor_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22960,6 +24873,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_mccolor_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22978,6 +24892,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_r00a +#define FNAME_S(name) store_pixel_mccolor_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -22987,6 +24902,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_0g0a +#define FNAME_S(name) store_pixel_mccolor_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -22996,6 +24912,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_rg0a +#define FNAME_S(name) store_pixel_mccolor_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23014,6 +24931,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_r0ba +#define FNAME_S(name) store_pixel_mccolor_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23023,6 +24941,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_0gba +#define FNAME_S(name) store_pixel_mccolor_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23032,6 +24951,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfcolor_rgba +#define FNAME_S(name) store_pixel_mccolor_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23050,6 +24970,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_r000 +#define FNAME_S(name) store_pixel_mccolor_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23059,6 +24980,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_0g00 +#define FNAME_S(name) store_pixel_mccolor_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23068,6 +24990,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_rg00 +#define FNAME_S(name) store_pixel_mccolor_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23086,6 +25009,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_r0b0 +#define FNAME_S(name) store_pixel_mccolor_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23095,6 +25019,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_0gb0 +#define FNAME_S(name) store_pixel_mccolor_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23104,6 +25029,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_rgb0 +#define FNAME_S(name) store_pixel_mccolor_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23122,6 +25048,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_r00a +#define FNAME_S(name) store_pixel_mccolor_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23131,6 +25058,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_0g0a +#define FNAME_S(name) store_pixel_mccolor_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23140,6 +25068,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_rg0a +#define FNAME_S(name) store_pixel_mccolor_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23158,6 +25087,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_r0ba +#define FNAME_S(name) store_pixel_mccolor_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23167,6 +25097,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_0gba +#define FNAME_S(name) store_pixel_mccolor_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23176,6 +25107,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ialpha_rgba +#define FNAME_S(name) store_pixel_mccolor_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23194,6 +25126,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_r000 +#define FNAME_S(name) store_pixel_mccolor_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23203,6 +25136,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_0g00 +#define FNAME_S(name) store_pixel_mccolor_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23212,6 +25146,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_rg00 +#define FNAME_S(name) store_pixel_mccolor_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23230,6 +25165,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_r0b0 +#define FNAME_S(name) store_pixel_mccolor_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23239,6 +25175,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_0gb0 +#define FNAME_S(name) store_pixel_mccolor_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23248,6 +25185,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_rgb0 +#define FNAME_S(name) store_pixel_mccolor_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23266,6 +25204,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_r00a +#define FNAME_S(name) store_pixel_mccolor_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23275,6 +25214,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_0g0a +#define FNAME_S(name) store_pixel_mccolor_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23284,6 +25224,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_rg0a +#define FNAME_S(name) store_pixel_mccolor_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23302,6 +25243,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_r0ba +#define FNAME_S(name) store_pixel_mccolor_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23311,6 +25253,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_0gba +#define FNAME_S(name) store_pixel_mccolor_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23320,6 +25263,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mialpha_rgba +#define FNAME_S(name) store_pixel_mccolor_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23338,6 +25282,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_r000 +#define FNAME_S(name) store_pixel_mccolor_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23347,6 +25292,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_0g00 +#define FNAME_S(name) store_pixel_mccolor_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23356,6 +25302,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_rg00 +#define FNAME_S(name) store_pixel_mccolor_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23374,6 +25321,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_r0b0 +#define FNAME_S(name) store_pixel_mccolor_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23383,6 +25331,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_0gb0 +#define FNAME_S(name) store_pixel_mccolor_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23392,6 +25341,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_rgb0 +#define FNAME_S(name) store_pixel_mccolor_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23410,6 +25360,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_r00a +#define FNAME_S(name) store_pixel_mccolor_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23419,6 +25370,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_0g0a +#define FNAME_S(name) store_pixel_mccolor_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23428,6 +25380,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_rg0a +#define FNAME_S(name) store_pixel_mccolor_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23446,6 +25399,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_r0ba +#define FNAME_S(name) store_pixel_mccolor_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23455,6 +25409,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_0gba +#define FNAME_S(name) store_pixel_mccolor_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23464,6 +25419,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_falpha_rgba +#define FNAME_S(name) store_pixel_mccolor_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23482,6 +25438,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_r000 +#define FNAME_S(name) store_pixel_mccolor_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23491,6 +25448,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_0g00 +#define FNAME_S(name) store_pixel_mccolor_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23500,6 +25458,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_rg00 +#define FNAME_S(name) store_pixel_mccolor_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23518,6 +25477,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_mccolor_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23527,6 +25487,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_mccolor_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23536,6 +25497,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_mccolor_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23554,6 +25516,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_r00a +#define FNAME_S(name) store_pixel_mccolor_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23563,6 +25526,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_0g0a +#define FNAME_S(name) store_pixel_mccolor_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23572,6 +25536,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_rg0a +#define FNAME_S(name) store_pixel_mccolor_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23590,6 +25555,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_r0ba +#define FNAME_S(name) store_pixel_mccolor_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23599,6 +25565,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_0gba +#define FNAME_S(name) store_pixel_mccolor_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23608,6 +25575,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mfalpha_rgba +#define FNAME_S(name) store_pixel_mccolor_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23626,6 +25594,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_r000 +#define FNAME_S(name) store_pixel_mccolor_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23635,6 +25604,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_0g00 +#define FNAME_S(name) store_pixel_mccolor_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23644,6 +25614,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_rg00 +#define FNAME_S(name) store_pixel_mccolor_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23662,6 +25633,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_r0b0 +#define FNAME_S(name) store_pixel_mccolor_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23671,6 +25643,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_0gb0 +#define FNAME_S(name) store_pixel_mccolor_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23680,6 +25653,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_rgb0 +#define FNAME_S(name) store_pixel_mccolor_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23698,6 +25672,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_r00a +#define FNAME_S(name) store_pixel_mccolor_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23707,6 +25682,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_0g0a +#define FNAME_S(name) store_pixel_mccolor_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23716,6 +25692,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_rg0a +#define FNAME_S(name) store_pixel_mccolor_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23734,6 +25711,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_r0ba +#define FNAME_S(name) store_pixel_mccolor_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23743,6 +25721,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_0gba +#define FNAME_S(name) store_pixel_mccolor_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23752,6 +25731,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_ccolor_rgba +#define FNAME_S(name) store_pixel_mccolor_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23770,6 +25750,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_r000 +#define FNAME_S(name) store_pixel_mccolor_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23779,6 +25760,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_0g00 +#define FNAME_S(name) store_pixel_mccolor_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23788,6 +25770,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_rg00 +#define FNAME_S(name) store_pixel_mccolor_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23806,6 +25789,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_r0b0 +#define FNAME_S(name) store_pixel_mccolor_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23815,6 +25799,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_0gb0 +#define FNAME_S(name) store_pixel_mccolor_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23824,6 +25809,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_rgb0 +#define FNAME_S(name) store_pixel_mccolor_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23842,6 +25828,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_r00a +#define FNAME_S(name) store_pixel_mccolor_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23851,6 +25838,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_0g0a +#define FNAME_S(name) store_pixel_mccolor_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23860,6 +25848,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_rg0a +#define FNAME_S(name) store_pixel_mccolor_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23878,6 +25867,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_r0ba +#define FNAME_S(name) store_pixel_mccolor_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23887,6 +25877,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_0gba +#define FNAME_S(name) store_pixel_mccolor_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23896,6 +25887,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mccolor_rgba +#define FNAME_S(name) store_pixel_mccolor_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23914,6 +25906,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_r000 +#define FNAME_S(name) store_pixel_mccolor_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23923,6 +25916,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_0g00 +#define FNAME_S(name) store_pixel_mccolor_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23932,6 +25926,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_rg00 +#define FNAME_S(name) store_pixel_mccolor_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23950,6 +25945,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_r0b0 +#define FNAME_S(name) store_pixel_mccolor_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23959,6 +25955,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_0gb0 +#define FNAME_S(name) store_pixel_mccolor_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -23968,6 +25965,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_rgb0 +#define FNAME_S(name) store_pixel_mccolor_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23986,6 +25984,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_r00a +#define FNAME_S(name) store_pixel_mccolor_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -23995,6 +25994,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_0g0a +#define FNAME_S(name) store_pixel_mccolor_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24004,6 +26004,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_rg0a +#define FNAME_S(name) store_pixel_mccolor_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24022,6 +26023,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_r0ba +#define FNAME_S(name) store_pixel_mccolor_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24031,6 +26033,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_0gba +#define FNAME_S(name) store_pixel_mccolor_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24040,6 +26043,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_calpha_rgba +#define FNAME_S(name) store_pixel_mccolor_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24058,6 +26062,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_r000 +#define FNAME_S(name) store_pixel_mccolor_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24067,6 +26072,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_0g00 +#define FNAME_S(name) store_pixel_mccolor_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24076,6 +26082,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_rg00 +#define FNAME_S(name) store_pixel_mccolor_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24094,6 +26101,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_mccolor_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24103,6 +26111,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_mccolor_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24112,6 +26121,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_mccolor_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24130,6 +26140,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_r00a +#define FNAME_S(name) store_pixel_mccolor_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24139,6 +26150,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_0g0a +#define FNAME_S(name) store_pixel_mccolor_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24148,6 +26160,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_rg0a +#define FNAME_S(name) store_pixel_mccolor_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24166,6 +26179,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_r0ba +#define FNAME_S(name) store_pixel_mccolor_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24175,6 +26189,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_0gba +#define FNAME_S(name) store_pixel_mccolor_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24184,6 +26199,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mccolor_mcalpha_rgba +#define FNAME_S(name) store_pixel_mccolor_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24202,6 +26218,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_r000 +#define FNAME_S(name) store_pixel_calpha_zero_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24211,6 +26228,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_0g00 +#define FNAME_S(name) store_pixel_calpha_zero_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24220,6 +26238,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_rg00 +#define FNAME_S(name) store_pixel_calpha_zero_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24238,6 +26257,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_r0b0 +#define FNAME_S(name) store_pixel_calpha_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24247,6 +26267,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_0gb0 +#define FNAME_S(name) store_pixel_calpha_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24256,6 +26277,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_rgb0 +#define FNAME_S(name) store_pixel_calpha_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24274,6 +26296,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_r00a +#define FNAME_S(name) store_pixel_calpha_zero_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24283,6 +26306,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_0g0a +#define FNAME_S(name) store_pixel_calpha_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24292,6 +26316,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_rg0a +#define FNAME_S(name) store_pixel_calpha_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24310,6 +26335,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_r0ba +#define FNAME_S(name) store_pixel_calpha_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24319,6 +26345,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_0gba +#define FNAME_S(name) store_pixel_calpha_zero_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24328,6 +26355,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_zero_rgba +#define FNAME_S(name) store_pixel_calpha_zero_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24346,6 +26374,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_r000 +#define FNAME_S(name) store_pixel_calpha_one_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24355,6 +26384,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_0g00 +#define FNAME_S(name) store_pixel_calpha_one_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24364,6 +26394,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_rg00 +#define FNAME_S(name) store_pixel_calpha_one_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24382,6 +26413,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_r0b0 +#define FNAME_S(name) store_pixel_calpha_one_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24391,6 +26423,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_0gb0 +#define FNAME_S(name) store_pixel_calpha_one_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24400,6 +26433,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_rgb0 +#define FNAME_S(name) store_pixel_calpha_one_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24418,6 +26452,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_r00a +#define FNAME_S(name) store_pixel_calpha_one_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24427,6 +26462,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_0g0a +#define FNAME_S(name) store_pixel_calpha_one_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24436,6 +26472,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_rg0a +#define FNAME_S(name) store_pixel_calpha_one_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24454,6 +26491,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_r0ba +#define FNAME_S(name) store_pixel_calpha_one_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24463,6 +26501,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_0gba +#define FNAME_S(name) store_pixel_calpha_one_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24472,6 +26511,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_one_rgba +#define FNAME_S(name) store_pixel_calpha_one_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24490,6 +26530,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_r000 +#define FNAME_S(name) store_pixel_calpha_icolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24499,6 +26540,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_0g00 +#define FNAME_S(name) store_pixel_calpha_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24508,6 +26550,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_rg00 +#define FNAME_S(name) store_pixel_calpha_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24526,6 +26569,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_r0b0 +#define FNAME_S(name) store_pixel_calpha_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24535,6 +26579,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_0gb0 +#define FNAME_S(name) store_pixel_calpha_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24544,6 +26589,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_rgb0 +#define FNAME_S(name) store_pixel_calpha_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24562,6 +26608,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_r00a +#define FNAME_S(name) store_pixel_calpha_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24571,6 +26618,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_0g0a +#define FNAME_S(name) store_pixel_calpha_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24580,6 +26628,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_rg0a +#define FNAME_S(name) store_pixel_calpha_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24598,6 +26647,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_r0ba +#define FNAME_S(name) store_pixel_calpha_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24607,6 +26657,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_0gba +#define FNAME_S(name) store_pixel_calpha_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24616,6 +26667,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_icolor_rgba +#define FNAME_S(name) store_pixel_calpha_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24634,6 +26686,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_r000 +#define FNAME_S(name) store_pixel_calpha_micolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24643,6 +26696,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_0g00 +#define FNAME_S(name) store_pixel_calpha_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24652,6 +26706,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_rg00 +#define FNAME_S(name) store_pixel_calpha_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24670,6 +26725,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_r0b0 +#define FNAME_S(name) store_pixel_calpha_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24679,6 +26735,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_0gb0 +#define FNAME_S(name) store_pixel_calpha_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24688,6 +26745,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_rgb0 +#define FNAME_S(name) store_pixel_calpha_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24706,6 +26764,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_r00a +#define FNAME_S(name) store_pixel_calpha_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24715,6 +26774,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_0g0a +#define FNAME_S(name) store_pixel_calpha_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24724,6 +26784,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_rg0a +#define FNAME_S(name) store_pixel_calpha_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24742,6 +26803,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_r0ba +#define FNAME_S(name) store_pixel_calpha_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24751,6 +26813,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_0gba +#define FNAME_S(name) store_pixel_calpha_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24760,6 +26823,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_micolor_rgba +#define FNAME_S(name) store_pixel_calpha_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24778,6 +26842,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_r000 +#define FNAME_S(name) store_pixel_calpha_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24787,6 +26852,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_0g00 +#define FNAME_S(name) store_pixel_calpha_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24796,6 +26862,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_rg00 +#define FNAME_S(name) store_pixel_calpha_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24814,6 +26881,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_r0b0 +#define FNAME_S(name) store_pixel_calpha_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24823,6 +26891,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_0gb0 +#define FNAME_S(name) store_pixel_calpha_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24832,6 +26901,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_rgb0 +#define FNAME_S(name) store_pixel_calpha_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24850,6 +26920,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_r00a +#define FNAME_S(name) store_pixel_calpha_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24859,6 +26930,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_0g0a +#define FNAME_S(name) store_pixel_calpha_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24868,6 +26940,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_rg0a +#define FNAME_S(name) store_pixel_calpha_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24886,6 +26959,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_r0ba +#define FNAME_S(name) store_pixel_calpha_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24895,6 +26969,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_0gba +#define FNAME_S(name) store_pixel_calpha_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24904,6 +26979,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_fcolor_rgba +#define FNAME_S(name) store_pixel_calpha_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24922,6 +26998,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_r000 +#define FNAME_S(name) store_pixel_calpha_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24931,6 +27008,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_0g00 +#define FNAME_S(name) store_pixel_calpha_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24940,6 +27018,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_rg00 +#define FNAME_S(name) store_pixel_calpha_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24958,6 +27037,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_calpha_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24967,6 +27047,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_calpha_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -24976,6 +27057,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_calpha_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -24994,6 +27076,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_r00a +#define FNAME_S(name) store_pixel_calpha_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25003,6 +27086,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_0g0a +#define FNAME_S(name) store_pixel_calpha_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25012,6 +27096,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_rg0a +#define FNAME_S(name) store_pixel_calpha_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25030,6 +27115,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_r0ba +#define FNAME_S(name) store_pixel_calpha_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25039,6 +27125,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_0gba +#define FNAME_S(name) store_pixel_calpha_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25048,6 +27135,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfcolor_rgba +#define FNAME_S(name) store_pixel_calpha_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25066,6 +27154,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_r000 +#define FNAME_S(name) store_pixel_calpha_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25075,6 +27164,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_0g00 +#define FNAME_S(name) store_pixel_calpha_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25084,6 +27174,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_rg00 +#define FNAME_S(name) store_pixel_calpha_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25102,6 +27193,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_r0b0 +#define FNAME_S(name) store_pixel_calpha_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25111,6 +27203,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_0gb0 +#define FNAME_S(name) store_pixel_calpha_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25120,6 +27213,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_rgb0 +#define FNAME_S(name) store_pixel_calpha_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25138,6 +27232,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_r00a +#define FNAME_S(name) store_pixel_calpha_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25147,6 +27242,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_0g0a +#define FNAME_S(name) store_pixel_calpha_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25156,6 +27252,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_rg0a +#define FNAME_S(name) store_pixel_calpha_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25174,6 +27271,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_r0ba +#define FNAME_S(name) store_pixel_calpha_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25183,6 +27281,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_0gba +#define FNAME_S(name) store_pixel_calpha_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25192,6 +27291,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ialpha_rgba +#define FNAME_S(name) store_pixel_calpha_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25210,6 +27310,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_r000 +#define FNAME_S(name) store_pixel_calpha_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25219,6 +27320,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_0g00 +#define FNAME_S(name) store_pixel_calpha_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25228,6 +27330,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_rg00 +#define FNAME_S(name) store_pixel_calpha_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25246,6 +27349,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_r0b0 +#define FNAME_S(name) store_pixel_calpha_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25255,6 +27359,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_0gb0 +#define FNAME_S(name) store_pixel_calpha_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25264,6 +27369,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_rgb0 +#define FNAME_S(name) store_pixel_calpha_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25282,6 +27388,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_r00a +#define FNAME_S(name) store_pixel_calpha_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25291,6 +27398,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_0g0a +#define FNAME_S(name) store_pixel_calpha_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25300,6 +27408,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_rg0a +#define FNAME_S(name) store_pixel_calpha_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25318,6 +27427,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_r0ba +#define FNAME_S(name) store_pixel_calpha_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25327,6 +27437,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_0gba +#define FNAME_S(name) store_pixel_calpha_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25336,6 +27447,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mialpha_rgba +#define FNAME_S(name) store_pixel_calpha_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25354,6 +27466,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_r000 +#define FNAME_S(name) store_pixel_calpha_falpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25363,6 +27476,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_0g00 +#define FNAME_S(name) store_pixel_calpha_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25372,6 +27486,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_rg00 +#define FNAME_S(name) store_pixel_calpha_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25390,6 +27505,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_r0b0 +#define FNAME_S(name) store_pixel_calpha_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25399,6 +27515,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_0gb0 +#define FNAME_S(name) store_pixel_calpha_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25408,6 +27525,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_rgb0 +#define FNAME_S(name) store_pixel_calpha_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25426,6 +27544,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_r00a +#define FNAME_S(name) store_pixel_calpha_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25435,6 +27554,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_0g0a +#define FNAME_S(name) store_pixel_calpha_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25444,6 +27564,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_rg0a +#define FNAME_S(name) store_pixel_calpha_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25462,6 +27583,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_r0ba +#define FNAME_S(name) store_pixel_calpha_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25471,6 +27593,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_0gba +#define FNAME_S(name) store_pixel_calpha_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25480,6 +27603,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_falpha_rgba +#define FNAME_S(name) store_pixel_calpha_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25498,6 +27622,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_r000 +#define FNAME_S(name) store_pixel_calpha_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25507,6 +27632,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_0g00 +#define FNAME_S(name) store_pixel_calpha_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25516,6 +27642,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_rg00 +#define FNAME_S(name) store_pixel_calpha_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25534,6 +27661,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_calpha_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25543,6 +27671,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_calpha_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25552,6 +27681,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_calpha_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25570,6 +27700,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_r00a +#define FNAME_S(name) store_pixel_calpha_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25579,6 +27710,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_0g0a +#define FNAME_S(name) store_pixel_calpha_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25588,6 +27720,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_rg0a +#define FNAME_S(name) store_pixel_calpha_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25606,6 +27739,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_r0ba +#define FNAME_S(name) store_pixel_calpha_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25615,6 +27749,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_0gba +#define FNAME_S(name) store_pixel_calpha_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25624,6 +27759,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mfalpha_rgba +#define FNAME_S(name) store_pixel_calpha_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25642,6 +27778,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_r000 +#define FNAME_S(name) store_pixel_calpha_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25651,6 +27788,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_0g00 +#define FNAME_S(name) store_pixel_calpha_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25660,6 +27798,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_rg00 +#define FNAME_S(name) store_pixel_calpha_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25678,6 +27817,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_r0b0 +#define FNAME_S(name) store_pixel_calpha_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25687,6 +27827,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_0gb0 +#define FNAME_S(name) store_pixel_calpha_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25696,6 +27837,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_rgb0 +#define FNAME_S(name) store_pixel_calpha_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25714,6 +27856,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_r00a +#define FNAME_S(name) store_pixel_calpha_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25723,6 +27866,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_0g0a +#define FNAME_S(name) store_pixel_calpha_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25732,6 +27876,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_rg0a +#define FNAME_S(name) store_pixel_calpha_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25750,6 +27895,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_r0ba +#define FNAME_S(name) store_pixel_calpha_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25759,6 +27905,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_0gba +#define FNAME_S(name) store_pixel_calpha_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25768,6 +27915,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_ccolor_rgba +#define FNAME_S(name) store_pixel_calpha_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25786,6 +27934,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_r000 +#define FNAME_S(name) store_pixel_calpha_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25795,6 +27944,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_0g00 +#define FNAME_S(name) store_pixel_calpha_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25804,6 +27954,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_rg00 +#define FNAME_S(name) store_pixel_calpha_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25822,6 +27973,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_r0b0 +#define FNAME_S(name) store_pixel_calpha_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25831,6 +27983,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_0gb0 +#define FNAME_S(name) store_pixel_calpha_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25840,6 +27993,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_rgb0 +#define FNAME_S(name) store_pixel_calpha_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25858,6 +28012,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_r00a +#define FNAME_S(name) store_pixel_calpha_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25867,6 +28022,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_0g0a +#define FNAME_S(name) store_pixel_calpha_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25876,6 +28032,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_rg0a +#define FNAME_S(name) store_pixel_calpha_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25894,6 +28051,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_r0ba +#define FNAME_S(name) store_pixel_calpha_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25903,6 +28061,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_0gba +#define FNAME_S(name) store_pixel_calpha_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25912,6 +28071,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mccolor_rgba +#define FNAME_S(name) store_pixel_calpha_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25930,6 +28090,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_r000 +#define FNAME_S(name) store_pixel_calpha_calpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25939,6 +28100,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_0g00 +#define FNAME_S(name) store_pixel_calpha_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25948,6 +28110,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_rg00 +#define FNAME_S(name) store_pixel_calpha_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25966,6 +28129,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_r0b0 +#define FNAME_S(name) store_pixel_calpha_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -25975,6 +28139,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_0gb0 +#define FNAME_S(name) store_pixel_calpha_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -25984,6 +28149,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_rgb0 +#define FNAME_S(name) store_pixel_calpha_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26002,6 +28168,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_r00a +#define FNAME_S(name) store_pixel_calpha_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26011,6 +28178,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_0g0a +#define FNAME_S(name) store_pixel_calpha_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26020,6 +28188,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_rg0a +#define FNAME_S(name) store_pixel_calpha_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26038,6 +28207,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_r0ba +#define FNAME_S(name) store_pixel_calpha_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26047,6 +28217,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_0gba +#define FNAME_S(name) store_pixel_calpha_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26056,6 +28227,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_calpha_rgba +#define FNAME_S(name) store_pixel_calpha_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26074,6 +28246,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_r000 +#define FNAME_S(name) store_pixel_calpha_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26083,6 +28256,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_0g00 +#define FNAME_S(name) store_pixel_calpha_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26092,6 +28266,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_rg00 +#define FNAME_S(name) store_pixel_calpha_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26110,6 +28285,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_calpha_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26119,6 +28295,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_calpha_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26128,6 +28305,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_calpha_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26146,6 +28324,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_r00a +#define FNAME_S(name) store_pixel_calpha_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26155,6 +28334,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_0g0a +#define FNAME_S(name) store_pixel_calpha_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26164,6 +28344,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_rg0a +#define FNAME_S(name) store_pixel_calpha_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26182,6 +28363,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_r0ba +#define FNAME_S(name) store_pixel_calpha_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26191,6 +28373,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_0gba +#define FNAME_S(name) store_pixel_calpha_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26200,6 +28383,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_calpha_mcalpha_rgba +#define FNAME_S(name) store_pixel_calpha_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26218,6 +28402,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_r000 +#define FNAME_S(name) store_pixel_mcalpha_zero_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26227,6 +28412,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_0g00 +#define FNAME_S(name) store_pixel_mcalpha_zero_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26236,6 +28422,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_rg00 +#define FNAME_S(name) store_pixel_mcalpha_zero_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26254,6 +28441,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_zero_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26263,6 +28451,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_zero_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26272,6 +28461,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_zero_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26290,6 +28480,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_r00a +#define FNAME_S(name) store_pixel_mcalpha_zero_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26299,6 +28490,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_0g0a +#define FNAME_S(name) store_pixel_mcalpha_zero_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26308,6 +28500,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_rg0a +#define FNAME_S(name) store_pixel_mcalpha_zero_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26326,6 +28519,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_r0ba +#define FNAME_S(name) store_pixel_mcalpha_zero_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26335,6 +28529,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_0gba +#define FNAME_S(name) store_pixel_mcalpha_zero_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26344,6 +28539,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_zero_rgba +#define FNAME_S(name) store_pixel_mcalpha_zero_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26362,6 +28558,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_r000 +#define FNAME_S(name) store_pixel_mcalpha_one_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26371,6 +28568,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_0g00 +#define FNAME_S(name) store_pixel_mcalpha_one_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26380,6 +28578,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_rg00 +#define FNAME_S(name) store_pixel_mcalpha_one_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26398,6 +28597,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_one_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26407,6 +28607,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_one_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26416,6 +28617,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_one_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26434,6 +28636,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_r00a +#define FNAME_S(name) store_pixel_mcalpha_one_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26443,6 +28646,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_0g0a +#define FNAME_S(name) store_pixel_mcalpha_one_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26452,6 +28656,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_rg0a +#define FNAME_S(name) store_pixel_mcalpha_one_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26470,6 +28675,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_r0ba +#define FNAME_S(name) store_pixel_mcalpha_one_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26479,6 +28685,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_0gba +#define FNAME_S(name) store_pixel_mcalpha_one_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26488,6 +28695,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_one_rgba +#define FNAME_S(name) store_pixel_mcalpha_one_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0x10000)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26506,6 +28714,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_r000 +#define FNAME_S(name) store_pixel_mcalpha_icolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26515,6 +28724,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_0g00 +#define FNAME_S(name) store_pixel_mcalpha_icolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26524,6 +28734,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_rg00 +#define FNAME_S(name) store_pixel_mcalpha_icolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26542,6 +28753,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_icolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26551,6 +28763,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_icolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26560,6 +28773,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_icolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26578,6 +28792,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_r00a +#define FNAME_S(name) store_pixel_mcalpha_icolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26587,6 +28802,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_0g0a +#define FNAME_S(name) store_pixel_mcalpha_icolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26596,6 +28812,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_rg0a +#define FNAME_S(name) store_pixel_mcalpha_icolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26614,6 +28831,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_r0ba +#define FNAME_S(name) store_pixel_mcalpha_icolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26623,6 +28841,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_0gba +#define FNAME_S(name) store_pixel_mcalpha_icolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26632,6 +28851,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_icolor_rgba +#define FNAME_S(name) store_pixel_mcalpha_icolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26650,6 +28870,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_r000 +#define FNAME_S(name) store_pixel_mcalpha_micolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26659,6 +28880,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_0g00 +#define FNAME_S(name) store_pixel_mcalpha_micolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26668,6 +28890,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_rg00 +#define FNAME_S(name) store_pixel_mcalpha_micolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26686,6 +28909,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_micolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26695,6 +28919,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_micolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26704,6 +28929,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_micolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26722,6 +28948,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_r00a +#define FNAME_S(name) store_pixel_mcalpha_micolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26731,6 +28958,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_0g0a +#define FNAME_S(name) store_pixel_mcalpha_micolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26740,6 +28968,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_rg0a +#define FNAME_S(name) store_pixel_mcalpha_micolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26758,6 +28987,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_r0ba +#define FNAME_S(name) store_pixel_mcalpha_micolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26767,6 +28997,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_0gba +#define FNAME_S(name) store_pixel_mcalpha_micolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26776,6 +29007,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_micolor_rgba +#define FNAME_S(name) store_pixel_mcalpha_micolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26794,6 +29026,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_r000 +#define FNAME_S(name) store_pixel_mcalpha_fcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26803,6 +29036,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_0g00 +#define FNAME_S(name) store_pixel_mcalpha_fcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26812,6 +29046,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_rg00 +#define FNAME_S(name) store_pixel_mcalpha_fcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26830,6 +29065,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_fcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26839,6 +29075,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_fcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26848,6 +29085,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_fcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26866,6 +29104,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_r00a +#define FNAME_S(name) store_pixel_mcalpha_fcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26875,6 +29114,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_0g0a +#define FNAME_S(name) store_pixel_mcalpha_fcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26884,6 +29124,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_rg0a +#define FNAME_S(name) store_pixel_mcalpha_fcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26902,6 +29143,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_r0ba +#define FNAME_S(name) store_pixel_mcalpha_fcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26911,6 +29153,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_0gba +#define FNAME_S(name) store_pixel_mcalpha_fcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26920,6 +29163,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_fcolor_rgba +#define FNAME_S(name) store_pixel_mcalpha_fcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26938,6 +29182,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_r000 +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26947,6 +29192,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_0g00 +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26956,6 +29202,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_rg00 +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26974,6 +29221,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -26983,6 +29231,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -26992,6 +29241,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27010,6 +29260,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_r00a +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27019,6 +29270,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_0g0a +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27028,6 +29280,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_rg0a +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27046,6 +29299,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_r0ba +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27055,6 +29309,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_0gba +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27064,6 +29319,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfcolor_rgba +#define FNAME_S(name) store_pixel_mcalpha_mfcolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - f)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27082,6 +29338,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_r000 +#define FNAME_S(name) store_pixel_mcalpha_ialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27091,6 +29348,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_0g00 +#define FNAME_S(name) store_pixel_mcalpha_ialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27100,6 +29358,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_rg00 +#define FNAME_S(name) store_pixel_mcalpha_ialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27118,6 +29377,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_ialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27127,6 +29387,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_ialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27136,6 +29397,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_ialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27154,6 +29416,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_r00a +#define FNAME_S(name) store_pixel_mcalpha_ialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27163,6 +29426,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_0g0a +#define FNAME_S(name) store_pixel_mcalpha_ialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27172,6 +29436,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_rg0a +#define FNAME_S(name) store_pixel_mcalpha_ialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27190,6 +29455,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_r0ba +#define FNAME_S(name) store_pixel_mcalpha_ialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27199,6 +29465,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_0gba +#define FNAME_S(name) store_pixel_mcalpha_ialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27208,6 +29475,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ialpha_rgba +#define FNAME_S(name) store_pixel_mcalpha_ialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27226,6 +29494,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_r000 +#define FNAME_S(name) store_pixel_mcalpha_mialpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27235,6 +29504,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_0g00 +#define FNAME_S(name) store_pixel_mcalpha_mialpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27244,6 +29514,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_rg00 +#define FNAME_S(name) store_pixel_mcalpha_mialpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27262,6 +29533,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_mialpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27271,6 +29543,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_mialpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27280,6 +29553,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_mialpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27298,6 +29572,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_r00a +#define FNAME_S(name) store_pixel_mcalpha_mialpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27307,6 +29582,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_0g0a +#define FNAME_S(name) store_pixel_mcalpha_mialpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27316,6 +29592,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_rg0a +#define FNAME_S(name) store_pixel_mcalpha_mialpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27334,6 +29611,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_r0ba +#define FNAME_S(name) store_pixel_mcalpha_mialpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27343,6 +29621,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_0gba +#define FNAME_S(name) store_pixel_mcalpha_mialpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27352,6 +29631,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mialpha_rgba +#define FNAME_S(name) store_pixel_mcalpha_mialpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27370,6 +29650,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_r000 +#define FNAME_S(name) store_pixel_mcalpha_falpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27379,6 +29660,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_0g00 +#define FNAME_S(name) store_pixel_mcalpha_falpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27388,6 +29670,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_rg00 +#define FNAME_S(name) store_pixel_mcalpha_falpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27406,6 +29689,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_falpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27415,6 +29699,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_falpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27424,6 +29709,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_falpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27442,6 +29728,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_r00a +#define FNAME_S(name) store_pixel_mcalpha_falpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27451,6 +29738,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_0g0a +#define FNAME_S(name) store_pixel_mcalpha_falpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27460,6 +29748,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_rg0a +#define FNAME_S(name) store_pixel_mcalpha_falpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27478,6 +29767,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_r0ba +#define FNAME_S(name) store_pixel_mcalpha_falpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27487,6 +29777,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_0gba +#define FNAME_S(name) store_pixel_mcalpha_falpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27496,6 +29787,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_falpha_rgba +#define FNAME_S(name) store_pixel_mcalpha_falpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27514,6 +29806,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_r000 +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27523,6 +29816,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_0g00 +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27532,6 +29826,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_rg00 +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27550,6 +29845,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27559,6 +29855,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27568,6 +29865,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27586,6 +29884,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_r00a +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27595,6 +29894,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_0g0a +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27604,6 +29904,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_rg0a +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27622,6 +29923,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_r0ba +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27631,6 +29933,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_0gba +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27640,6 +29943,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mfalpha_rgba +#define FNAME_S(name) store_pixel_mcalpha_mfalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - fa)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27658,6 +29962,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_r000 +#define FNAME_S(name) store_pixel_mcalpha_ccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27667,6 +29972,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_0g00 +#define FNAME_S(name) store_pixel_mcalpha_ccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27676,6 +29982,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_rg00 +#define FNAME_S(name) store_pixel_mcalpha_ccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27694,6 +30001,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_ccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27703,6 +30011,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_ccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27712,6 +30021,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_ccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27730,6 +30040,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_r00a +#define FNAME_S(name) store_pixel_mcalpha_ccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27739,6 +30050,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_0g0a +#define FNAME_S(name) store_pixel_mcalpha_ccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27748,6 +30060,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_rg0a +#define FNAME_S(name) store_pixel_mcalpha_ccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27766,6 +30079,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_r0ba +#define FNAME_S(name) store_pixel_mcalpha_ccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27775,6 +30089,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_0gba +#define FNAME_S(name) store_pixel_mcalpha_ccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27784,6 +30099,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_ccolor_rgba +#define FNAME_S(name) store_pixel_mcalpha_ccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27802,6 +30118,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_r000 +#define FNAME_S(name) store_pixel_mcalpha_mccolor_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27811,6 +30128,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_0g00 +#define FNAME_S(name) store_pixel_mcalpha_mccolor_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27820,6 +30138,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_rg00 +#define FNAME_S(name) store_pixel_mcalpha_mccolor_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27838,6 +30157,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_mccolor_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27847,6 +30167,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_mccolor_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27856,6 +30177,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_mccolor_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27874,6 +30196,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_r00a +#define FNAME_S(name) store_pixel_mcalpha_mccolor_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27883,6 +30206,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_0g0a +#define FNAME_S(name) store_pixel_mcalpha_mccolor_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27892,6 +30216,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_rg0a +#define FNAME_S(name) store_pixel_mcalpha_mccolor_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27910,6 +30235,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_r0ba +#define FNAME_S(name) store_pixel_mcalpha_mccolor_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27919,6 +30245,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_0gba +#define FNAME_S(name) store_pixel_mcalpha_mccolor_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27928,6 +30255,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mccolor_rgba +#define FNAME_S(name) store_pixel_mcalpha_mccolor_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_ ## i)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27946,6 +30274,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_r000 +#define FNAME_S(name) store_pixel_mcalpha_calpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27955,6 +30284,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_0g00 +#define FNAME_S(name) store_pixel_mcalpha_calpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -27964,6 +30294,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_rg00 +#define FNAME_S(name) store_pixel_mcalpha_calpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27982,6 +30313,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_calpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -27991,6 +30323,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_calpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28000,6 +30333,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_calpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28018,6 +30352,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_r00a +#define FNAME_S(name) store_pixel_mcalpha_calpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28027,6 +30362,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_0g0a +#define FNAME_S(name) store_pixel_mcalpha_calpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28036,6 +30372,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_rg0a +#define FNAME_S(name) store_pixel_mcalpha_calpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28054,6 +30391,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_r0ba +#define FNAME_S(name) store_pixel_mcalpha_calpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28063,6 +30401,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_0gba +#define FNAME_S(name) store_pixel_mcalpha_calpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28072,6 +30411,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_calpha_rgba +#define FNAME_S(name) store_pixel_mcalpha_calpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28090,6 +30430,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_r000 +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_r000_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28099,6 +30440,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_0g00 +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_0g00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28108,6 +30450,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_rg00 +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_rg00_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28126,6 +30469,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_r0b0 +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_r0b0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28135,6 +30479,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_0gb0 +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_0gb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28144,6 +30489,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_rgb0 +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_rgb0_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28162,6 +30508,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_r00a +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_r00a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28171,6 +30518,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_0g0a +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_0g0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28180,6 +30528,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_rg0a +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_rg0a_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28198,6 +30547,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_r0ba +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_r0ba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -28207,6 +30557,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_0gba +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_0gba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) (fr) @@ -28216,6 +30567,7 @@ #include "store_pixel.h" #define FNAME(name) store_pixel_mcalpha_mcalpha_rgba +#define FNAME_S(name) store_pixel_mcalpha_mcalpha_rgba_s #define OP_A(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define OP_B(f, i) ((unsigned int)(0xffff - zb->blend_a)) #define STORE_PIXEL_0(fr, r) STORE_PIX_CLAMP(r) @@ -31782,3 +34134,3562 @@ const ZB_storePixelFunc store_pixel_funcs[14][14][16] = { }, }, }; + +const ZB_storePixelFunc store_pixel_funcs_sRGB[14][14][16] = { + { + { + store_pixel_zero_zero_0000, + store_pixel_zero_zero_r000_s, + store_pixel_zero_zero_0g00_s, + store_pixel_zero_zero_rg00_s, + store_pixel_zero_zero_00b0, + store_pixel_zero_zero_r0b0_s, + store_pixel_zero_zero_0gb0_s, + store_pixel_zero_zero_rgb0_s, + store_pixel_zero_zero_000a, + store_pixel_zero_zero_r00a_s, + store_pixel_zero_zero_0g0a_s, + store_pixel_zero_zero_rg0a_s, + store_pixel_zero_zero_00ba, + store_pixel_zero_zero_r0ba_s, + store_pixel_zero_zero_0gba_s, + store_pixel_zero_zero_rgba_s, + }, + { + store_pixel_zero_one_0000, + store_pixel_zero_one_r000_s, + store_pixel_zero_one_0g00_s, + store_pixel_zero_one_rg00_s, + store_pixel_zero_one_00b0, + store_pixel_zero_one_r0b0_s, + store_pixel_zero_one_0gb0_s, + store_pixel_zero_one_rgb0_s, + store_pixel_zero_one_000a, + store_pixel_zero_one_r00a_s, + store_pixel_zero_one_0g0a_s, + store_pixel_zero_one_rg0a_s, + store_pixel_zero_one_00ba, + store_pixel_zero_one_r0ba_s, + store_pixel_zero_one_0gba_s, + store_pixel_zero_one_rgba_s, + }, + { + store_pixel_zero_icolor_0000, + store_pixel_zero_icolor_r000_s, + store_pixel_zero_icolor_0g00_s, + store_pixel_zero_icolor_rg00_s, + store_pixel_zero_icolor_00b0, + store_pixel_zero_icolor_r0b0_s, + store_pixel_zero_icolor_0gb0_s, + store_pixel_zero_icolor_rgb0_s, + store_pixel_zero_icolor_000a, + store_pixel_zero_icolor_r00a_s, + store_pixel_zero_icolor_0g0a_s, + store_pixel_zero_icolor_rg0a_s, + store_pixel_zero_icolor_00ba, + store_pixel_zero_icolor_r0ba_s, + store_pixel_zero_icolor_0gba_s, + store_pixel_zero_icolor_rgba_s, + }, + { + store_pixel_zero_micolor_0000, + store_pixel_zero_micolor_r000_s, + store_pixel_zero_micolor_0g00_s, + store_pixel_zero_micolor_rg00_s, + store_pixel_zero_micolor_00b0, + store_pixel_zero_micolor_r0b0_s, + store_pixel_zero_micolor_0gb0_s, + store_pixel_zero_micolor_rgb0_s, + store_pixel_zero_micolor_000a, + store_pixel_zero_micolor_r00a_s, + store_pixel_zero_micolor_0g0a_s, + store_pixel_zero_micolor_rg0a_s, + store_pixel_zero_micolor_00ba, + store_pixel_zero_micolor_r0ba_s, + store_pixel_zero_micolor_0gba_s, + store_pixel_zero_micolor_rgba_s, + }, + { + store_pixel_zero_fcolor_0000, + store_pixel_zero_fcolor_r000_s, + store_pixel_zero_fcolor_0g00_s, + store_pixel_zero_fcolor_rg00_s, + store_pixel_zero_fcolor_00b0, + store_pixel_zero_fcolor_r0b0_s, + store_pixel_zero_fcolor_0gb0_s, + store_pixel_zero_fcolor_rgb0_s, + store_pixel_zero_fcolor_000a, + store_pixel_zero_fcolor_r00a_s, + store_pixel_zero_fcolor_0g0a_s, + store_pixel_zero_fcolor_rg0a_s, + store_pixel_zero_fcolor_00ba, + store_pixel_zero_fcolor_r0ba_s, + store_pixel_zero_fcolor_0gba_s, + store_pixel_zero_fcolor_rgba_s, + }, + { + store_pixel_zero_mfcolor_0000, + store_pixel_zero_mfcolor_r000_s, + store_pixel_zero_mfcolor_0g00_s, + store_pixel_zero_mfcolor_rg00_s, + store_pixel_zero_mfcolor_00b0, + store_pixel_zero_mfcolor_r0b0_s, + store_pixel_zero_mfcolor_0gb0_s, + store_pixel_zero_mfcolor_rgb0_s, + store_pixel_zero_mfcolor_000a, + store_pixel_zero_mfcolor_r00a_s, + store_pixel_zero_mfcolor_0g0a_s, + store_pixel_zero_mfcolor_rg0a_s, + store_pixel_zero_mfcolor_00ba, + store_pixel_zero_mfcolor_r0ba_s, + store_pixel_zero_mfcolor_0gba_s, + store_pixel_zero_mfcolor_rgba_s, + }, + { + store_pixel_zero_ialpha_0000, + store_pixel_zero_ialpha_r000_s, + store_pixel_zero_ialpha_0g00_s, + store_pixel_zero_ialpha_rg00_s, + store_pixel_zero_ialpha_00b0, + store_pixel_zero_ialpha_r0b0_s, + store_pixel_zero_ialpha_0gb0_s, + store_pixel_zero_ialpha_rgb0_s, + store_pixel_zero_ialpha_000a, + store_pixel_zero_ialpha_r00a_s, + store_pixel_zero_ialpha_0g0a_s, + store_pixel_zero_ialpha_rg0a_s, + store_pixel_zero_ialpha_00ba, + store_pixel_zero_ialpha_r0ba_s, + store_pixel_zero_ialpha_0gba_s, + store_pixel_zero_ialpha_rgba_s, + }, + { + store_pixel_zero_mialpha_0000, + store_pixel_zero_mialpha_r000_s, + store_pixel_zero_mialpha_0g00_s, + store_pixel_zero_mialpha_rg00_s, + store_pixel_zero_mialpha_00b0, + store_pixel_zero_mialpha_r0b0_s, + store_pixel_zero_mialpha_0gb0_s, + store_pixel_zero_mialpha_rgb0_s, + store_pixel_zero_mialpha_000a, + store_pixel_zero_mialpha_r00a_s, + store_pixel_zero_mialpha_0g0a_s, + store_pixel_zero_mialpha_rg0a_s, + store_pixel_zero_mialpha_00ba, + store_pixel_zero_mialpha_r0ba_s, + store_pixel_zero_mialpha_0gba_s, + store_pixel_zero_mialpha_rgba_s, + }, + { + store_pixel_zero_falpha_0000, + store_pixel_zero_falpha_r000_s, + store_pixel_zero_falpha_0g00_s, + store_pixel_zero_falpha_rg00_s, + store_pixel_zero_falpha_00b0, + store_pixel_zero_falpha_r0b0_s, + store_pixel_zero_falpha_0gb0_s, + store_pixel_zero_falpha_rgb0_s, + store_pixel_zero_falpha_000a, + store_pixel_zero_falpha_r00a_s, + store_pixel_zero_falpha_0g0a_s, + store_pixel_zero_falpha_rg0a_s, + store_pixel_zero_falpha_00ba, + store_pixel_zero_falpha_r0ba_s, + store_pixel_zero_falpha_0gba_s, + store_pixel_zero_falpha_rgba_s, + }, + { + store_pixel_zero_mfalpha_0000, + store_pixel_zero_mfalpha_r000_s, + store_pixel_zero_mfalpha_0g00_s, + store_pixel_zero_mfalpha_rg00_s, + store_pixel_zero_mfalpha_00b0, + store_pixel_zero_mfalpha_r0b0_s, + store_pixel_zero_mfalpha_0gb0_s, + store_pixel_zero_mfalpha_rgb0_s, + store_pixel_zero_mfalpha_000a, + store_pixel_zero_mfalpha_r00a_s, + store_pixel_zero_mfalpha_0g0a_s, + store_pixel_zero_mfalpha_rg0a_s, + store_pixel_zero_mfalpha_00ba, + store_pixel_zero_mfalpha_r0ba_s, + store_pixel_zero_mfalpha_0gba_s, + store_pixel_zero_mfalpha_rgba_s, + }, + { + store_pixel_zero_ccolor_0000, + store_pixel_zero_ccolor_r000_s, + store_pixel_zero_ccolor_0g00_s, + store_pixel_zero_ccolor_rg00_s, + store_pixel_zero_ccolor_00b0, + store_pixel_zero_ccolor_r0b0_s, + store_pixel_zero_ccolor_0gb0_s, + store_pixel_zero_ccolor_rgb0_s, + store_pixel_zero_ccolor_000a, + store_pixel_zero_ccolor_r00a_s, + store_pixel_zero_ccolor_0g0a_s, + store_pixel_zero_ccolor_rg0a_s, + store_pixel_zero_ccolor_00ba, + store_pixel_zero_ccolor_r0ba_s, + store_pixel_zero_ccolor_0gba_s, + store_pixel_zero_ccolor_rgba_s, + }, + { + store_pixel_zero_mccolor_0000, + store_pixel_zero_mccolor_r000_s, + store_pixel_zero_mccolor_0g00_s, + store_pixel_zero_mccolor_rg00_s, + store_pixel_zero_mccolor_00b0, + store_pixel_zero_mccolor_r0b0_s, + store_pixel_zero_mccolor_0gb0_s, + store_pixel_zero_mccolor_rgb0_s, + store_pixel_zero_mccolor_000a, + store_pixel_zero_mccolor_r00a_s, + store_pixel_zero_mccolor_0g0a_s, + store_pixel_zero_mccolor_rg0a_s, + store_pixel_zero_mccolor_00ba, + store_pixel_zero_mccolor_r0ba_s, + store_pixel_zero_mccolor_0gba_s, + store_pixel_zero_mccolor_rgba_s, + }, + { + store_pixel_zero_calpha_0000, + store_pixel_zero_calpha_r000_s, + store_pixel_zero_calpha_0g00_s, + store_pixel_zero_calpha_rg00_s, + store_pixel_zero_calpha_00b0, + store_pixel_zero_calpha_r0b0_s, + store_pixel_zero_calpha_0gb0_s, + store_pixel_zero_calpha_rgb0_s, + store_pixel_zero_calpha_000a, + store_pixel_zero_calpha_r00a_s, + store_pixel_zero_calpha_0g0a_s, + store_pixel_zero_calpha_rg0a_s, + store_pixel_zero_calpha_00ba, + store_pixel_zero_calpha_r0ba_s, + store_pixel_zero_calpha_0gba_s, + store_pixel_zero_calpha_rgba_s, + }, + { + store_pixel_zero_mcalpha_0000, + store_pixel_zero_mcalpha_r000_s, + store_pixel_zero_mcalpha_0g00_s, + store_pixel_zero_mcalpha_rg00_s, + store_pixel_zero_mcalpha_00b0, + store_pixel_zero_mcalpha_r0b0_s, + store_pixel_zero_mcalpha_0gb0_s, + store_pixel_zero_mcalpha_rgb0_s, + store_pixel_zero_mcalpha_000a, + store_pixel_zero_mcalpha_r00a_s, + store_pixel_zero_mcalpha_0g0a_s, + store_pixel_zero_mcalpha_rg0a_s, + store_pixel_zero_mcalpha_00ba, + store_pixel_zero_mcalpha_r0ba_s, + store_pixel_zero_mcalpha_0gba_s, + store_pixel_zero_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_one_zero_0000, + store_pixel_one_zero_r000_s, + store_pixel_one_zero_0g00_s, + store_pixel_one_zero_rg00_s, + store_pixel_one_zero_00b0, + store_pixel_one_zero_r0b0_s, + store_pixel_one_zero_0gb0_s, + store_pixel_one_zero_rgb0_s, + store_pixel_one_zero_000a, + store_pixel_one_zero_r00a_s, + store_pixel_one_zero_0g0a_s, + store_pixel_one_zero_rg0a_s, + store_pixel_one_zero_00ba, + store_pixel_one_zero_r0ba_s, + store_pixel_one_zero_0gba_s, + store_pixel_one_zero_rgba_s, + }, + { + store_pixel_one_one_0000, + store_pixel_one_one_r000_s, + store_pixel_one_one_0g00_s, + store_pixel_one_one_rg00_s, + store_pixel_one_one_00b0, + store_pixel_one_one_r0b0_s, + store_pixel_one_one_0gb0_s, + store_pixel_one_one_rgb0_s, + store_pixel_one_one_000a, + store_pixel_one_one_r00a_s, + store_pixel_one_one_0g0a_s, + store_pixel_one_one_rg0a_s, + store_pixel_one_one_00ba, + store_pixel_one_one_r0ba_s, + store_pixel_one_one_0gba_s, + store_pixel_one_one_rgba_s, + }, + { + store_pixel_one_icolor_0000, + store_pixel_one_icolor_r000_s, + store_pixel_one_icolor_0g00_s, + store_pixel_one_icolor_rg00_s, + store_pixel_one_icolor_00b0, + store_pixel_one_icolor_r0b0_s, + store_pixel_one_icolor_0gb0_s, + store_pixel_one_icolor_rgb0_s, + store_pixel_one_icolor_000a, + store_pixel_one_icolor_r00a_s, + store_pixel_one_icolor_0g0a_s, + store_pixel_one_icolor_rg0a_s, + store_pixel_one_icolor_00ba, + store_pixel_one_icolor_r0ba_s, + store_pixel_one_icolor_0gba_s, + store_pixel_one_icolor_rgba_s, + }, + { + store_pixel_one_micolor_0000, + store_pixel_one_micolor_r000_s, + store_pixel_one_micolor_0g00_s, + store_pixel_one_micolor_rg00_s, + store_pixel_one_micolor_00b0, + store_pixel_one_micolor_r0b0_s, + store_pixel_one_micolor_0gb0_s, + store_pixel_one_micolor_rgb0_s, + store_pixel_one_micolor_000a, + store_pixel_one_micolor_r00a_s, + store_pixel_one_micolor_0g0a_s, + store_pixel_one_micolor_rg0a_s, + store_pixel_one_micolor_00ba, + store_pixel_one_micolor_r0ba_s, + store_pixel_one_micolor_0gba_s, + store_pixel_one_micolor_rgba_s, + }, + { + store_pixel_one_fcolor_0000, + store_pixel_one_fcolor_r000_s, + store_pixel_one_fcolor_0g00_s, + store_pixel_one_fcolor_rg00_s, + store_pixel_one_fcolor_00b0, + store_pixel_one_fcolor_r0b0_s, + store_pixel_one_fcolor_0gb0_s, + store_pixel_one_fcolor_rgb0_s, + store_pixel_one_fcolor_000a, + store_pixel_one_fcolor_r00a_s, + store_pixel_one_fcolor_0g0a_s, + store_pixel_one_fcolor_rg0a_s, + store_pixel_one_fcolor_00ba, + store_pixel_one_fcolor_r0ba_s, + store_pixel_one_fcolor_0gba_s, + store_pixel_one_fcolor_rgba_s, + }, + { + store_pixel_one_mfcolor_0000, + store_pixel_one_mfcolor_r000_s, + store_pixel_one_mfcolor_0g00_s, + store_pixel_one_mfcolor_rg00_s, + store_pixel_one_mfcolor_00b0, + store_pixel_one_mfcolor_r0b0_s, + store_pixel_one_mfcolor_0gb0_s, + store_pixel_one_mfcolor_rgb0_s, + store_pixel_one_mfcolor_000a, + store_pixel_one_mfcolor_r00a_s, + store_pixel_one_mfcolor_0g0a_s, + store_pixel_one_mfcolor_rg0a_s, + store_pixel_one_mfcolor_00ba, + store_pixel_one_mfcolor_r0ba_s, + store_pixel_one_mfcolor_0gba_s, + store_pixel_one_mfcolor_rgba_s, + }, + { + store_pixel_one_ialpha_0000, + store_pixel_one_ialpha_r000_s, + store_pixel_one_ialpha_0g00_s, + store_pixel_one_ialpha_rg00_s, + store_pixel_one_ialpha_00b0, + store_pixel_one_ialpha_r0b0_s, + store_pixel_one_ialpha_0gb0_s, + store_pixel_one_ialpha_rgb0_s, + store_pixel_one_ialpha_000a, + store_pixel_one_ialpha_r00a_s, + store_pixel_one_ialpha_0g0a_s, + store_pixel_one_ialpha_rg0a_s, + store_pixel_one_ialpha_00ba, + store_pixel_one_ialpha_r0ba_s, + store_pixel_one_ialpha_0gba_s, + store_pixel_one_ialpha_rgba_s, + }, + { + store_pixel_one_mialpha_0000, + store_pixel_one_mialpha_r000_s, + store_pixel_one_mialpha_0g00_s, + store_pixel_one_mialpha_rg00_s, + store_pixel_one_mialpha_00b0, + store_pixel_one_mialpha_r0b0_s, + store_pixel_one_mialpha_0gb0_s, + store_pixel_one_mialpha_rgb0_s, + store_pixel_one_mialpha_000a, + store_pixel_one_mialpha_r00a_s, + store_pixel_one_mialpha_0g0a_s, + store_pixel_one_mialpha_rg0a_s, + store_pixel_one_mialpha_00ba, + store_pixel_one_mialpha_r0ba_s, + store_pixel_one_mialpha_0gba_s, + store_pixel_one_mialpha_rgba_s, + }, + { + store_pixel_one_falpha_0000, + store_pixel_one_falpha_r000_s, + store_pixel_one_falpha_0g00_s, + store_pixel_one_falpha_rg00_s, + store_pixel_one_falpha_00b0, + store_pixel_one_falpha_r0b0_s, + store_pixel_one_falpha_0gb0_s, + store_pixel_one_falpha_rgb0_s, + store_pixel_one_falpha_000a, + store_pixel_one_falpha_r00a_s, + store_pixel_one_falpha_0g0a_s, + store_pixel_one_falpha_rg0a_s, + store_pixel_one_falpha_00ba, + store_pixel_one_falpha_r0ba_s, + store_pixel_one_falpha_0gba_s, + store_pixel_one_falpha_rgba_s, + }, + { + store_pixel_one_mfalpha_0000, + store_pixel_one_mfalpha_r000_s, + store_pixel_one_mfalpha_0g00_s, + store_pixel_one_mfalpha_rg00_s, + store_pixel_one_mfalpha_00b0, + store_pixel_one_mfalpha_r0b0_s, + store_pixel_one_mfalpha_0gb0_s, + store_pixel_one_mfalpha_rgb0_s, + store_pixel_one_mfalpha_000a, + store_pixel_one_mfalpha_r00a_s, + store_pixel_one_mfalpha_0g0a_s, + store_pixel_one_mfalpha_rg0a_s, + store_pixel_one_mfalpha_00ba, + store_pixel_one_mfalpha_r0ba_s, + store_pixel_one_mfalpha_0gba_s, + store_pixel_one_mfalpha_rgba_s, + }, + { + store_pixel_one_ccolor_0000, + store_pixel_one_ccolor_r000_s, + store_pixel_one_ccolor_0g00_s, + store_pixel_one_ccolor_rg00_s, + store_pixel_one_ccolor_00b0, + store_pixel_one_ccolor_r0b0_s, + store_pixel_one_ccolor_0gb0_s, + store_pixel_one_ccolor_rgb0_s, + store_pixel_one_ccolor_000a, + store_pixel_one_ccolor_r00a_s, + store_pixel_one_ccolor_0g0a_s, + store_pixel_one_ccolor_rg0a_s, + store_pixel_one_ccolor_00ba, + store_pixel_one_ccolor_r0ba_s, + store_pixel_one_ccolor_0gba_s, + store_pixel_one_ccolor_rgba_s, + }, + { + store_pixel_one_mccolor_0000, + store_pixel_one_mccolor_r000_s, + store_pixel_one_mccolor_0g00_s, + store_pixel_one_mccolor_rg00_s, + store_pixel_one_mccolor_00b0, + store_pixel_one_mccolor_r0b0_s, + store_pixel_one_mccolor_0gb0_s, + store_pixel_one_mccolor_rgb0_s, + store_pixel_one_mccolor_000a, + store_pixel_one_mccolor_r00a_s, + store_pixel_one_mccolor_0g0a_s, + store_pixel_one_mccolor_rg0a_s, + store_pixel_one_mccolor_00ba, + store_pixel_one_mccolor_r0ba_s, + store_pixel_one_mccolor_0gba_s, + store_pixel_one_mccolor_rgba_s, + }, + { + store_pixel_one_calpha_0000, + store_pixel_one_calpha_r000_s, + store_pixel_one_calpha_0g00_s, + store_pixel_one_calpha_rg00_s, + store_pixel_one_calpha_00b0, + store_pixel_one_calpha_r0b0_s, + store_pixel_one_calpha_0gb0_s, + store_pixel_one_calpha_rgb0_s, + store_pixel_one_calpha_000a, + store_pixel_one_calpha_r00a_s, + store_pixel_one_calpha_0g0a_s, + store_pixel_one_calpha_rg0a_s, + store_pixel_one_calpha_00ba, + store_pixel_one_calpha_r0ba_s, + store_pixel_one_calpha_0gba_s, + store_pixel_one_calpha_rgba_s, + }, + { + store_pixel_one_mcalpha_0000, + store_pixel_one_mcalpha_r000_s, + store_pixel_one_mcalpha_0g00_s, + store_pixel_one_mcalpha_rg00_s, + store_pixel_one_mcalpha_00b0, + store_pixel_one_mcalpha_r0b0_s, + store_pixel_one_mcalpha_0gb0_s, + store_pixel_one_mcalpha_rgb0_s, + store_pixel_one_mcalpha_000a, + store_pixel_one_mcalpha_r00a_s, + store_pixel_one_mcalpha_0g0a_s, + store_pixel_one_mcalpha_rg0a_s, + store_pixel_one_mcalpha_00ba, + store_pixel_one_mcalpha_r0ba_s, + store_pixel_one_mcalpha_0gba_s, + store_pixel_one_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_icolor_zero_0000, + store_pixel_icolor_zero_r000_s, + store_pixel_icolor_zero_0g00_s, + store_pixel_icolor_zero_rg00_s, + store_pixel_icolor_zero_00b0, + store_pixel_icolor_zero_r0b0_s, + store_pixel_icolor_zero_0gb0_s, + store_pixel_icolor_zero_rgb0_s, + store_pixel_icolor_zero_000a, + store_pixel_icolor_zero_r00a_s, + store_pixel_icolor_zero_0g0a_s, + store_pixel_icolor_zero_rg0a_s, + store_pixel_icolor_zero_00ba, + store_pixel_icolor_zero_r0ba_s, + store_pixel_icolor_zero_0gba_s, + store_pixel_icolor_zero_rgba_s, + }, + { + store_pixel_icolor_one_0000, + store_pixel_icolor_one_r000_s, + store_pixel_icolor_one_0g00_s, + store_pixel_icolor_one_rg00_s, + store_pixel_icolor_one_00b0, + store_pixel_icolor_one_r0b0_s, + store_pixel_icolor_one_0gb0_s, + store_pixel_icolor_one_rgb0_s, + store_pixel_icolor_one_000a, + store_pixel_icolor_one_r00a_s, + store_pixel_icolor_one_0g0a_s, + store_pixel_icolor_one_rg0a_s, + store_pixel_icolor_one_00ba, + store_pixel_icolor_one_r0ba_s, + store_pixel_icolor_one_0gba_s, + store_pixel_icolor_one_rgba_s, + }, + { + store_pixel_icolor_icolor_0000, + store_pixel_icolor_icolor_r000_s, + store_pixel_icolor_icolor_0g00_s, + store_pixel_icolor_icolor_rg00_s, + store_pixel_icolor_icolor_00b0, + store_pixel_icolor_icolor_r0b0_s, + store_pixel_icolor_icolor_0gb0_s, + store_pixel_icolor_icolor_rgb0_s, + store_pixel_icolor_icolor_000a, + store_pixel_icolor_icolor_r00a_s, + store_pixel_icolor_icolor_0g0a_s, + store_pixel_icolor_icolor_rg0a_s, + store_pixel_icolor_icolor_00ba, + store_pixel_icolor_icolor_r0ba_s, + store_pixel_icolor_icolor_0gba_s, + store_pixel_icolor_icolor_rgba_s, + }, + { + store_pixel_icolor_micolor_0000, + store_pixel_icolor_micolor_r000_s, + store_pixel_icolor_micolor_0g00_s, + store_pixel_icolor_micolor_rg00_s, + store_pixel_icolor_micolor_00b0, + store_pixel_icolor_micolor_r0b0_s, + store_pixel_icolor_micolor_0gb0_s, + store_pixel_icolor_micolor_rgb0_s, + store_pixel_icolor_micolor_000a, + store_pixel_icolor_micolor_r00a_s, + store_pixel_icolor_micolor_0g0a_s, + store_pixel_icolor_micolor_rg0a_s, + store_pixel_icolor_micolor_00ba, + store_pixel_icolor_micolor_r0ba_s, + store_pixel_icolor_micolor_0gba_s, + store_pixel_icolor_micolor_rgba_s, + }, + { + store_pixel_icolor_fcolor_0000, + store_pixel_icolor_fcolor_r000_s, + store_pixel_icolor_fcolor_0g00_s, + store_pixel_icolor_fcolor_rg00_s, + store_pixel_icolor_fcolor_00b0, + store_pixel_icolor_fcolor_r0b0_s, + store_pixel_icolor_fcolor_0gb0_s, + store_pixel_icolor_fcolor_rgb0_s, + store_pixel_icolor_fcolor_000a, + store_pixel_icolor_fcolor_r00a_s, + store_pixel_icolor_fcolor_0g0a_s, + store_pixel_icolor_fcolor_rg0a_s, + store_pixel_icolor_fcolor_00ba, + store_pixel_icolor_fcolor_r0ba_s, + store_pixel_icolor_fcolor_0gba_s, + store_pixel_icolor_fcolor_rgba_s, + }, + { + store_pixel_icolor_mfcolor_0000, + store_pixel_icolor_mfcolor_r000_s, + store_pixel_icolor_mfcolor_0g00_s, + store_pixel_icolor_mfcolor_rg00_s, + store_pixel_icolor_mfcolor_00b0, + store_pixel_icolor_mfcolor_r0b0_s, + store_pixel_icolor_mfcolor_0gb0_s, + store_pixel_icolor_mfcolor_rgb0_s, + store_pixel_icolor_mfcolor_000a, + store_pixel_icolor_mfcolor_r00a_s, + store_pixel_icolor_mfcolor_0g0a_s, + store_pixel_icolor_mfcolor_rg0a_s, + store_pixel_icolor_mfcolor_00ba, + store_pixel_icolor_mfcolor_r0ba_s, + store_pixel_icolor_mfcolor_0gba_s, + store_pixel_icolor_mfcolor_rgba_s, + }, + { + store_pixel_icolor_ialpha_0000, + store_pixel_icolor_ialpha_r000_s, + store_pixel_icolor_ialpha_0g00_s, + store_pixel_icolor_ialpha_rg00_s, + store_pixel_icolor_ialpha_00b0, + store_pixel_icolor_ialpha_r0b0_s, + store_pixel_icolor_ialpha_0gb0_s, + store_pixel_icolor_ialpha_rgb0_s, + store_pixel_icolor_ialpha_000a, + store_pixel_icolor_ialpha_r00a_s, + store_pixel_icolor_ialpha_0g0a_s, + store_pixel_icolor_ialpha_rg0a_s, + store_pixel_icolor_ialpha_00ba, + store_pixel_icolor_ialpha_r0ba_s, + store_pixel_icolor_ialpha_0gba_s, + store_pixel_icolor_ialpha_rgba_s, + }, + { + store_pixel_icolor_mialpha_0000, + store_pixel_icolor_mialpha_r000_s, + store_pixel_icolor_mialpha_0g00_s, + store_pixel_icolor_mialpha_rg00_s, + store_pixel_icolor_mialpha_00b0, + store_pixel_icolor_mialpha_r0b0_s, + store_pixel_icolor_mialpha_0gb0_s, + store_pixel_icolor_mialpha_rgb0_s, + store_pixel_icolor_mialpha_000a, + store_pixel_icolor_mialpha_r00a_s, + store_pixel_icolor_mialpha_0g0a_s, + store_pixel_icolor_mialpha_rg0a_s, + store_pixel_icolor_mialpha_00ba, + store_pixel_icolor_mialpha_r0ba_s, + store_pixel_icolor_mialpha_0gba_s, + store_pixel_icolor_mialpha_rgba_s, + }, + { + store_pixel_icolor_falpha_0000, + store_pixel_icolor_falpha_r000_s, + store_pixel_icolor_falpha_0g00_s, + store_pixel_icolor_falpha_rg00_s, + store_pixel_icolor_falpha_00b0, + store_pixel_icolor_falpha_r0b0_s, + store_pixel_icolor_falpha_0gb0_s, + store_pixel_icolor_falpha_rgb0_s, + store_pixel_icolor_falpha_000a, + store_pixel_icolor_falpha_r00a_s, + store_pixel_icolor_falpha_0g0a_s, + store_pixel_icolor_falpha_rg0a_s, + store_pixel_icolor_falpha_00ba, + store_pixel_icolor_falpha_r0ba_s, + store_pixel_icolor_falpha_0gba_s, + store_pixel_icolor_falpha_rgba_s, + }, + { + store_pixel_icolor_mfalpha_0000, + store_pixel_icolor_mfalpha_r000_s, + store_pixel_icolor_mfalpha_0g00_s, + store_pixel_icolor_mfalpha_rg00_s, + store_pixel_icolor_mfalpha_00b0, + store_pixel_icolor_mfalpha_r0b0_s, + store_pixel_icolor_mfalpha_0gb0_s, + store_pixel_icolor_mfalpha_rgb0_s, + store_pixel_icolor_mfalpha_000a, + store_pixel_icolor_mfalpha_r00a_s, + store_pixel_icolor_mfalpha_0g0a_s, + store_pixel_icolor_mfalpha_rg0a_s, + store_pixel_icolor_mfalpha_00ba, + store_pixel_icolor_mfalpha_r0ba_s, + store_pixel_icolor_mfalpha_0gba_s, + store_pixel_icolor_mfalpha_rgba_s, + }, + { + store_pixel_icolor_ccolor_0000, + store_pixel_icolor_ccolor_r000_s, + store_pixel_icolor_ccolor_0g00_s, + store_pixel_icolor_ccolor_rg00_s, + store_pixel_icolor_ccolor_00b0, + store_pixel_icolor_ccolor_r0b0_s, + store_pixel_icolor_ccolor_0gb0_s, + store_pixel_icolor_ccolor_rgb0_s, + store_pixel_icolor_ccolor_000a, + store_pixel_icolor_ccolor_r00a_s, + store_pixel_icolor_ccolor_0g0a_s, + store_pixel_icolor_ccolor_rg0a_s, + store_pixel_icolor_ccolor_00ba, + store_pixel_icolor_ccolor_r0ba_s, + store_pixel_icolor_ccolor_0gba_s, + store_pixel_icolor_ccolor_rgba_s, + }, + { + store_pixel_icolor_mccolor_0000, + store_pixel_icolor_mccolor_r000_s, + store_pixel_icolor_mccolor_0g00_s, + store_pixel_icolor_mccolor_rg00_s, + store_pixel_icolor_mccolor_00b0, + store_pixel_icolor_mccolor_r0b0_s, + store_pixel_icolor_mccolor_0gb0_s, + store_pixel_icolor_mccolor_rgb0_s, + store_pixel_icolor_mccolor_000a, + store_pixel_icolor_mccolor_r00a_s, + store_pixel_icolor_mccolor_0g0a_s, + store_pixel_icolor_mccolor_rg0a_s, + store_pixel_icolor_mccolor_00ba, + store_pixel_icolor_mccolor_r0ba_s, + store_pixel_icolor_mccolor_0gba_s, + store_pixel_icolor_mccolor_rgba_s, + }, + { + store_pixel_icolor_calpha_0000, + store_pixel_icolor_calpha_r000_s, + store_pixel_icolor_calpha_0g00_s, + store_pixel_icolor_calpha_rg00_s, + store_pixel_icolor_calpha_00b0, + store_pixel_icolor_calpha_r0b0_s, + store_pixel_icolor_calpha_0gb0_s, + store_pixel_icolor_calpha_rgb0_s, + store_pixel_icolor_calpha_000a, + store_pixel_icolor_calpha_r00a_s, + store_pixel_icolor_calpha_0g0a_s, + store_pixel_icolor_calpha_rg0a_s, + store_pixel_icolor_calpha_00ba, + store_pixel_icolor_calpha_r0ba_s, + store_pixel_icolor_calpha_0gba_s, + store_pixel_icolor_calpha_rgba_s, + }, + { + store_pixel_icolor_mcalpha_0000, + store_pixel_icolor_mcalpha_r000_s, + store_pixel_icolor_mcalpha_0g00_s, + store_pixel_icolor_mcalpha_rg00_s, + store_pixel_icolor_mcalpha_00b0, + store_pixel_icolor_mcalpha_r0b0_s, + store_pixel_icolor_mcalpha_0gb0_s, + store_pixel_icolor_mcalpha_rgb0_s, + store_pixel_icolor_mcalpha_000a, + store_pixel_icolor_mcalpha_r00a_s, + store_pixel_icolor_mcalpha_0g0a_s, + store_pixel_icolor_mcalpha_rg0a_s, + store_pixel_icolor_mcalpha_00ba, + store_pixel_icolor_mcalpha_r0ba_s, + store_pixel_icolor_mcalpha_0gba_s, + store_pixel_icolor_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_micolor_zero_0000, + store_pixel_micolor_zero_r000_s, + store_pixel_micolor_zero_0g00_s, + store_pixel_micolor_zero_rg00_s, + store_pixel_micolor_zero_00b0, + store_pixel_micolor_zero_r0b0_s, + store_pixel_micolor_zero_0gb0_s, + store_pixel_micolor_zero_rgb0_s, + store_pixel_micolor_zero_000a, + store_pixel_micolor_zero_r00a_s, + store_pixel_micolor_zero_0g0a_s, + store_pixel_micolor_zero_rg0a_s, + store_pixel_micolor_zero_00ba, + store_pixel_micolor_zero_r0ba_s, + store_pixel_micolor_zero_0gba_s, + store_pixel_micolor_zero_rgba_s, + }, + { + store_pixel_micolor_one_0000, + store_pixel_micolor_one_r000_s, + store_pixel_micolor_one_0g00_s, + store_pixel_micolor_one_rg00_s, + store_pixel_micolor_one_00b0, + store_pixel_micolor_one_r0b0_s, + store_pixel_micolor_one_0gb0_s, + store_pixel_micolor_one_rgb0_s, + store_pixel_micolor_one_000a, + store_pixel_micolor_one_r00a_s, + store_pixel_micolor_one_0g0a_s, + store_pixel_micolor_one_rg0a_s, + store_pixel_micolor_one_00ba, + store_pixel_micolor_one_r0ba_s, + store_pixel_micolor_one_0gba_s, + store_pixel_micolor_one_rgba_s, + }, + { + store_pixel_micolor_icolor_0000, + store_pixel_micolor_icolor_r000_s, + store_pixel_micolor_icolor_0g00_s, + store_pixel_micolor_icolor_rg00_s, + store_pixel_micolor_icolor_00b0, + store_pixel_micolor_icolor_r0b0_s, + store_pixel_micolor_icolor_0gb0_s, + store_pixel_micolor_icolor_rgb0_s, + store_pixel_micolor_icolor_000a, + store_pixel_micolor_icolor_r00a_s, + store_pixel_micolor_icolor_0g0a_s, + store_pixel_micolor_icolor_rg0a_s, + store_pixel_micolor_icolor_00ba, + store_pixel_micolor_icolor_r0ba_s, + store_pixel_micolor_icolor_0gba_s, + store_pixel_micolor_icolor_rgba_s, + }, + { + store_pixel_micolor_micolor_0000, + store_pixel_micolor_micolor_r000_s, + store_pixel_micolor_micolor_0g00_s, + store_pixel_micolor_micolor_rg00_s, + store_pixel_micolor_micolor_00b0, + store_pixel_micolor_micolor_r0b0_s, + store_pixel_micolor_micolor_0gb0_s, + store_pixel_micolor_micolor_rgb0_s, + store_pixel_micolor_micolor_000a, + store_pixel_micolor_micolor_r00a_s, + store_pixel_micolor_micolor_0g0a_s, + store_pixel_micolor_micolor_rg0a_s, + store_pixel_micolor_micolor_00ba, + store_pixel_micolor_micolor_r0ba_s, + store_pixel_micolor_micolor_0gba_s, + store_pixel_micolor_micolor_rgba_s, + }, + { + store_pixel_micolor_fcolor_0000, + store_pixel_micolor_fcolor_r000_s, + store_pixel_micolor_fcolor_0g00_s, + store_pixel_micolor_fcolor_rg00_s, + store_pixel_micolor_fcolor_00b0, + store_pixel_micolor_fcolor_r0b0_s, + store_pixel_micolor_fcolor_0gb0_s, + store_pixel_micolor_fcolor_rgb0_s, + store_pixel_micolor_fcolor_000a, + store_pixel_micolor_fcolor_r00a_s, + store_pixel_micolor_fcolor_0g0a_s, + store_pixel_micolor_fcolor_rg0a_s, + store_pixel_micolor_fcolor_00ba, + store_pixel_micolor_fcolor_r0ba_s, + store_pixel_micolor_fcolor_0gba_s, + store_pixel_micolor_fcolor_rgba_s, + }, + { + store_pixel_micolor_mfcolor_0000, + store_pixel_micolor_mfcolor_r000_s, + store_pixel_micolor_mfcolor_0g00_s, + store_pixel_micolor_mfcolor_rg00_s, + store_pixel_micolor_mfcolor_00b0, + store_pixel_micolor_mfcolor_r0b0_s, + store_pixel_micolor_mfcolor_0gb0_s, + store_pixel_micolor_mfcolor_rgb0_s, + store_pixel_micolor_mfcolor_000a, + store_pixel_micolor_mfcolor_r00a_s, + store_pixel_micolor_mfcolor_0g0a_s, + store_pixel_micolor_mfcolor_rg0a_s, + store_pixel_micolor_mfcolor_00ba, + store_pixel_micolor_mfcolor_r0ba_s, + store_pixel_micolor_mfcolor_0gba_s, + store_pixel_micolor_mfcolor_rgba_s, + }, + { + store_pixel_micolor_ialpha_0000, + store_pixel_micolor_ialpha_r000_s, + store_pixel_micolor_ialpha_0g00_s, + store_pixel_micolor_ialpha_rg00_s, + store_pixel_micolor_ialpha_00b0, + store_pixel_micolor_ialpha_r0b0_s, + store_pixel_micolor_ialpha_0gb0_s, + store_pixel_micolor_ialpha_rgb0_s, + store_pixel_micolor_ialpha_000a, + store_pixel_micolor_ialpha_r00a_s, + store_pixel_micolor_ialpha_0g0a_s, + store_pixel_micolor_ialpha_rg0a_s, + store_pixel_micolor_ialpha_00ba, + store_pixel_micolor_ialpha_r0ba_s, + store_pixel_micolor_ialpha_0gba_s, + store_pixel_micolor_ialpha_rgba_s, + }, + { + store_pixel_micolor_mialpha_0000, + store_pixel_micolor_mialpha_r000_s, + store_pixel_micolor_mialpha_0g00_s, + store_pixel_micolor_mialpha_rg00_s, + store_pixel_micolor_mialpha_00b0, + store_pixel_micolor_mialpha_r0b0_s, + store_pixel_micolor_mialpha_0gb0_s, + store_pixel_micolor_mialpha_rgb0_s, + store_pixel_micolor_mialpha_000a, + store_pixel_micolor_mialpha_r00a_s, + store_pixel_micolor_mialpha_0g0a_s, + store_pixel_micolor_mialpha_rg0a_s, + store_pixel_micolor_mialpha_00ba, + store_pixel_micolor_mialpha_r0ba_s, + store_pixel_micolor_mialpha_0gba_s, + store_pixel_micolor_mialpha_rgba_s, + }, + { + store_pixel_micolor_falpha_0000, + store_pixel_micolor_falpha_r000_s, + store_pixel_micolor_falpha_0g00_s, + store_pixel_micolor_falpha_rg00_s, + store_pixel_micolor_falpha_00b0, + store_pixel_micolor_falpha_r0b0_s, + store_pixel_micolor_falpha_0gb0_s, + store_pixel_micolor_falpha_rgb0_s, + store_pixel_micolor_falpha_000a, + store_pixel_micolor_falpha_r00a_s, + store_pixel_micolor_falpha_0g0a_s, + store_pixel_micolor_falpha_rg0a_s, + store_pixel_micolor_falpha_00ba, + store_pixel_micolor_falpha_r0ba_s, + store_pixel_micolor_falpha_0gba_s, + store_pixel_micolor_falpha_rgba_s, + }, + { + store_pixel_micolor_mfalpha_0000, + store_pixel_micolor_mfalpha_r000_s, + store_pixel_micolor_mfalpha_0g00_s, + store_pixel_micolor_mfalpha_rg00_s, + store_pixel_micolor_mfalpha_00b0, + store_pixel_micolor_mfalpha_r0b0_s, + store_pixel_micolor_mfalpha_0gb0_s, + store_pixel_micolor_mfalpha_rgb0_s, + store_pixel_micolor_mfalpha_000a, + store_pixel_micolor_mfalpha_r00a_s, + store_pixel_micolor_mfalpha_0g0a_s, + store_pixel_micolor_mfalpha_rg0a_s, + store_pixel_micolor_mfalpha_00ba, + store_pixel_micolor_mfalpha_r0ba_s, + store_pixel_micolor_mfalpha_0gba_s, + store_pixel_micolor_mfalpha_rgba_s, + }, + { + store_pixel_micolor_ccolor_0000, + store_pixel_micolor_ccolor_r000_s, + store_pixel_micolor_ccolor_0g00_s, + store_pixel_micolor_ccolor_rg00_s, + store_pixel_micolor_ccolor_00b0, + store_pixel_micolor_ccolor_r0b0_s, + store_pixel_micolor_ccolor_0gb0_s, + store_pixel_micolor_ccolor_rgb0_s, + store_pixel_micolor_ccolor_000a, + store_pixel_micolor_ccolor_r00a_s, + store_pixel_micolor_ccolor_0g0a_s, + store_pixel_micolor_ccolor_rg0a_s, + store_pixel_micolor_ccolor_00ba, + store_pixel_micolor_ccolor_r0ba_s, + store_pixel_micolor_ccolor_0gba_s, + store_pixel_micolor_ccolor_rgba_s, + }, + { + store_pixel_micolor_mccolor_0000, + store_pixel_micolor_mccolor_r000_s, + store_pixel_micolor_mccolor_0g00_s, + store_pixel_micolor_mccolor_rg00_s, + store_pixel_micolor_mccolor_00b0, + store_pixel_micolor_mccolor_r0b0_s, + store_pixel_micolor_mccolor_0gb0_s, + store_pixel_micolor_mccolor_rgb0_s, + store_pixel_micolor_mccolor_000a, + store_pixel_micolor_mccolor_r00a_s, + store_pixel_micolor_mccolor_0g0a_s, + store_pixel_micolor_mccolor_rg0a_s, + store_pixel_micolor_mccolor_00ba, + store_pixel_micolor_mccolor_r0ba_s, + store_pixel_micolor_mccolor_0gba_s, + store_pixel_micolor_mccolor_rgba_s, + }, + { + store_pixel_micolor_calpha_0000, + store_pixel_micolor_calpha_r000_s, + store_pixel_micolor_calpha_0g00_s, + store_pixel_micolor_calpha_rg00_s, + store_pixel_micolor_calpha_00b0, + store_pixel_micolor_calpha_r0b0_s, + store_pixel_micolor_calpha_0gb0_s, + store_pixel_micolor_calpha_rgb0_s, + store_pixel_micolor_calpha_000a, + store_pixel_micolor_calpha_r00a_s, + store_pixel_micolor_calpha_0g0a_s, + store_pixel_micolor_calpha_rg0a_s, + store_pixel_micolor_calpha_00ba, + store_pixel_micolor_calpha_r0ba_s, + store_pixel_micolor_calpha_0gba_s, + store_pixel_micolor_calpha_rgba_s, + }, + { + store_pixel_micolor_mcalpha_0000, + store_pixel_micolor_mcalpha_r000_s, + store_pixel_micolor_mcalpha_0g00_s, + store_pixel_micolor_mcalpha_rg00_s, + store_pixel_micolor_mcalpha_00b0, + store_pixel_micolor_mcalpha_r0b0_s, + store_pixel_micolor_mcalpha_0gb0_s, + store_pixel_micolor_mcalpha_rgb0_s, + store_pixel_micolor_mcalpha_000a, + store_pixel_micolor_mcalpha_r00a_s, + store_pixel_micolor_mcalpha_0g0a_s, + store_pixel_micolor_mcalpha_rg0a_s, + store_pixel_micolor_mcalpha_00ba, + store_pixel_micolor_mcalpha_r0ba_s, + store_pixel_micolor_mcalpha_0gba_s, + store_pixel_micolor_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_fcolor_zero_0000, + store_pixel_fcolor_zero_r000_s, + store_pixel_fcolor_zero_0g00_s, + store_pixel_fcolor_zero_rg00_s, + store_pixel_fcolor_zero_00b0, + store_pixel_fcolor_zero_r0b0_s, + store_pixel_fcolor_zero_0gb0_s, + store_pixel_fcolor_zero_rgb0_s, + store_pixel_fcolor_zero_000a, + store_pixel_fcolor_zero_r00a_s, + store_pixel_fcolor_zero_0g0a_s, + store_pixel_fcolor_zero_rg0a_s, + store_pixel_fcolor_zero_00ba, + store_pixel_fcolor_zero_r0ba_s, + store_pixel_fcolor_zero_0gba_s, + store_pixel_fcolor_zero_rgba_s, + }, + { + store_pixel_fcolor_one_0000, + store_pixel_fcolor_one_r000_s, + store_pixel_fcolor_one_0g00_s, + store_pixel_fcolor_one_rg00_s, + store_pixel_fcolor_one_00b0, + store_pixel_fcolor_one_r0b0_s, + store_pixel_fcolor_one_0gb0_s, + store_pixel_fcolor_one_rgb0_s, + store_pixel_fcolor_one_000a, + store_pixel_fcolor_one_r00a_s, + store_pixel_fcolor_one_0g0a_s, + store_pixel_fcolor_one_rg0a_s, + store_pixel_fcolor_one_00ba, + store_pixel_fcolor_one_r0ba_s, + store_pixel_fcolor_one_0gba_s, + store_pixel_fcolor_one_rgba_s, + }, + { + store_pixel_fcolor_icolor_0000, + store_pixel_fcolor_icolor_r000_s, + store_pixel_fcolor_icolor_0g00_s, + store_pixel_fcolor_icolor_rg00_s, + store_pixel_fcolor_icolor_00b0, + store_pixel_fcolor_icolor_r0b0_s, + store_pixel_fcolor_icolor_0gb0_s, + store_pixel_fcolor_icolor_rgb0_s, + store_pixel_fcolor_icolor_000a, + store_pixel_fcolor_icolor_r00a_s, + store_pixel_fcolor_icolor_0g0a_s, + store_pixel_fcolor_icolor_rg0a_s, + store_pixel_fcolor_icolor_00ba, + store_pixel_fcolor_icolor_r0ba_s, + store_pixel_fcolor_icolor_0gba_s, + store_pixel_fcolor_icolor_rgba_s, + }, + { + store_pixel_fcolor_micolor_0000, + store_pixel_fcolor_micolor_r000_s, + store_pixel_fcolor_micolor_0g00_s, + store_pixel_fcolor_micolor_rg00_s, + store_pixel_fcolor_micolor_00b0, + store_pixel_fcolor_micolor_r0b0_s, + store_pixel_fcolor_micolor_0gb0_s, + store_pixel_fcolor_micolor_rgb0_s, + store_pixel_fcolor_micolor_000a, + store_pixel_fcolor_micolor_r00a_s, + store_pixel_fcolor_micolor_0g0a_s, + store_pixel_fcolor_micolor_rg0a_s, + store_pixel_fcolor_micolor_00ba, + store_pixel_fcolor_micolor_r0ba_s, + store_pixel_fcolor_micolor_0gba_s, + store_pixel_fcolor_micolor_rgba_s, + }, + { + store_pixel_fcolor_fcolor_0000, + store_pixel_fcolor_fcolor_r000_s, + store_pixel_fcolor_fcolor_0g00_s, + store_pixel_fcolor_fcolor_rg00_s, + store_pixel_fcolor_fcolor_00b0, + store_pixel_fcolor_fcolor_r0b0_s, + store_pixel_fcolor_fcolor_0gb0_s, + store_pixel_fcolor_fcolor_rgb0_s, + store_pixel_fcolor_fcolor_000a, + store_pixel_fcolor_fcolor_r00a_s, + store_pixel_fcolor_fcolor_0g0a_s, + store_pixel_fcolor_fcolor_rg0a_s, + store_pixel_fcolor_fcolor_00ba, + store_pixel_fcolor_fcolor_r0ba_s, + store_pixel_fcolor_fcolor_0gba_s, + store_pixel_fcolor_fcolor_rgba_s, + }, + { + store_pixel_fcolor_mfcolor_0000, + store_pixel_fcolor_mfcolor_r000_s, + store_pixel_fcolor_mfcolor_0g00_s, + store_pixel_fcolor_mfcolor_rg00_s, + store_pixel_fcolor_mfcolor_00b0, + store_pixel_fcolor_mfcolor_r0b0_s, + store_pixel_fcolor_mfcolor_0gb0_s, + store_pixel_fcolor_mfcolor_rgb0_s, + store_pixel_fcolor_mfcolor_000a, + store_pixel_fcolor_mfcolor_r00a_s, + store_pixel_fcolor_mfcolor_0g0a_s, + store_pixel_fcolor_mfcolor_rg0a_s, + store_pixel_fcolor_mfcolor_00ba, + store_pixel_fcolor_mfcolor_r0ba_s, + store_pixel_fcolor_mfcolor_0gba_s, + store_pixel_fcolor_mfcolor_rgba_s, + }, + { + store_pixel_fcolor_ialpha_0000, + store_pixel_fcolor_ialpha_r000_s, + store_pixel_fcolor_ialpha_0g00_s, + store_pixel_fcolor_ialpha_rg00_s, + store_pixel_fcolor_ialpha_00b0, + store_pixel_fcolor_ialpha_r0b0_s, + store_pixel_fcolor_ialpha_0gb0_s, + store_pixel_fcolor_ialpha_rgb0_s, + store_pixel_fcolor_ialpha_000a, + store_pixel_fcolor_ialpha_r00a_s, + store_pixel_fcolor_ialpha_0g0a_s, + store_pixel_fcolor_ialpha_rg0a_s, + store_pixel_fcolor_ialpha_00ba, + store_pixel_fcolor_ialpha_r0ba_s, + store_pixel_fcolor_ialpha_0gba_s, + store_pixel_fcolor_ialpha_rgba_s, + }, + { + store_pixel_fcolor_mialpha_0000, + store_pixel_fcolor_mialpha_r000_s, + store_pixel_fcolor_mialpha_0g00_s, + store_pixel_fcolor_mialpha_rg00_s, + store_pixel_fcolor_mialpha_00b0, + store_pixel_fcolor_mialpha_r0b0_s, + store_pixel_fcolor_mialpha_0gb0_s, + store_pixel_fcolor_mialpha_rgb0_s, + store_pixel_fcolor_mialpha_000a, + store_pixel_fcolor_mialpha_r00a_s, + store_pixel_fcolor_mialpha_0g0a_s, + store_pixel_fcolor_mialpha_rg0a_s, + store_pixel_fcolor_mialpha_00ba, + store_pixel_fcolor_mialpha_r0ba_s, + store_pixel_fcolor_mialpha_0gba_s, + store_pixel_fcolor_mialpha_rgba_s, + }, + { + store_pixel_fcolor_falpha_0000, + store_pixel_fcolor_falpha_r000_s, + store_pixel_fcolor_falpha_0g00_s, + store_pixel_fcolor_falpha_rg00_s, + store_pixel_fcolor_falpha_00b0, + store_pixel_fcolor_falpha_r0b0_s, + store_pixel_fcolor_falpha_0gb0_s, + store_pixel_fcolor_falpha_rgb0_s, + store_pixel_fcolor_falpha_000a, + store_pixel_fcolor_falpha_r00a_s, + store_pixel_fcolor_falpha_0g0a_s, + store_pixel_fcolor_falpha_rg0a_s, + store_pixel_fcolor_falpha_00ba, + store_pixel_fcolor_falpha_r0ba_s, + store_pixel_fcolor_falpha_0gba_s, + store_pixel_fcolor_falpha_rgba_s, + }, + { + store_pixel_fcolor_mfalpha_0000, + store_pixel_fcolor_mfalpha_r000_s, + store_pixel_fcolor_mfalpha_0g00_s, + store_pixel_fcolor_mfalpha_rg00_s, + store_pixel_fcolor_mfalpha_00b0, + store_pixel_fcolor_mfalpha_r0b0_s, + store_pixel_fcolor_mfalpha_0gb0_s, + store_pixel_fcolor_mfalpha_rgb0_s, + store_pixel_fcolor_mfalpha_000a, + store_pixel_fcolor_mfalpha_r00a_s, + store_pixel_fcolor_mfalpha_0g0a_s, + store_pixel_fcolor_mfalpha_rg0a_s, + store_pixel_fcolor_mfalpha_00ba, + store_pixel_fcolor_mfalpha_r0ba_s, + store_pixel_fcolor_mfalpha_0gba_s, + store_pixel_fcolor_mfalpha_rgba_s, + }, + { + store_pixel_fcolor_ccolor_0000, + store_pixel_fcolor_ccolor_r000_s, + store_pixel_fcolor_ccolor_0g00_s, + store_pixel_fcolor_ccolor_rg00_s, + store_pixel_fcolor_ccolor_00b0, + store_pixel_fcolor_ccolor_r0b0_s, + store_pixel_fcolor_ccolor_0gb0_s, + store_pixel_fcolor_ccolor_rgb0_s, + store_pixel_fcolor_ccolor_000a, + store_pixel_fcolor_ccolor_r00a_s, + store_pixel_fcolor_ccolor_0g0a_s, + store_pixel_fcolor_ccolor_rg0a_s, + store_pixel_fcolor_ccolor_00ba, + store_pixel_fcolor_ccolor_r0ba_s, + store_pixel_fcolor_ccolor_0gba_s, + store_pixel_fcolor_ccolor_rgba_s, + }, + { + store_pixel_fcolor_mccolor_0000, + store_pixel_fcolor_mccolor_r000_s, + store_pixel_fcolor_mccolor_0g00_s, + store_pixel_fcolor_mccolor_rg00_s, + store_pixel_fcolor_mccolor_00b0, + store_pixel_fcolor_mccolor_r0b0_s, + store_pixel_fcolor_mccolor_0gb0_s, + store_pixel_fcolor_mccolor_rgb0_s, + store_pixel_fcolor_mccolor_000a, + store_pixel_fcolor_mccolor_r00a_s, + store_pixel_fcolor_mccolor_0g0a_s, + store_pixel_fcolor_mccolor_rg0a_s, + store_pixel_fcolor_mccolor_00ba, + store_pixel_fcolor_mccolor_r0ba_s, + store_pixel_fcolor_mccolor_0gba_s, + store_pixel_fcolor_mccolor_rgba_s, + }, + { + store_pixel_fcolor_calpha_0000, + store_pixel_fcolor_calpha_r000_s, + store_pixel_fcolor_calpha_0g00_s, + store_pixel_fcolor_calpha_rg00_s, + store_pixel_fcolor_calpha_00b0, + store_pixel_fcolor_calpha_r0b0_s, + store_pixel_fcolor_calpha_0gb0_s, + store_pixel_fcolor_calpha_rgb0_s, + store_pixel_fcolor_calpha_000a, + store_pixel_fcolor_calpha_r00a_s, + store_pixel_fcolor_calpha_0g0a_s, + store_pixel_fcolor_calpha_rg0a_s, + store_pixel_fcolor_calpha_00ba, + store_pixel_fcolor_calpha_r0ba_s, + store_pixel_fcolor_calpha_0gba_s, + store_pixel_fcolor_calpha_rgba_s, + }, + { + store_pixel_fcolor_mcalpha_0000, + store_pixel_fcolor_mcalpha_r000_s, + store_pixel_fcolor_mcalpha_0g00_s, + store_pixel_fcolor_mcalpha_rg00_s, + store_pixel_fcolor_mcalpha_00b0, + store_pixel_fcolor_mcalpha_r0b0_s, + store_pixel_fcolor_mcalpha_0gb0_s, + store_pixel_fcolor_mcalpha_rgb0_s, + store_pixel_fcolor_mcalpha_000a, + store_pixel_fcolor_mcalpha_r00a_s, + store_pixel_fcolor_mcalpha_0g0a_s, + store_pixel_fcolor_mcalpha_rg0a_s, + store_pixel_fcolor_mcalpha_00ba, + store_pixel_fcolor_mcalpha_r0ba_s, + store_pixel_fcolor_mcalpha_0gba_s, + store_pixel_fcolor_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_mfcolor_zero_0000, + store_pixel_mfcolor_zero_r000_s, + store_pixel_mfcolor_zero_0g00_s, + store_pixel_mfcolor_zero_rg00_s, + store_pixel_mfcolor_zero_00b0, + store_pixel_mfcolor_zero_r0b0_s, + store_pixel_mfcolor_zero_0gb0_s, + store_pixel_mfcolor_zero_rgb0_s, + store_pixel_mfcolor_zero_000a, + store_pixel_mfcolor_zero_r00a_s, + store_pixel_mfcolor_zero_0g0a_s, + store_pixel_mfcolor_zero_rg0a_s, + store_pixel_mfcolor_zero_00ba, + store_pixel_mfcolor_zero_r0ba_s, + store_pixel_mfcolor_zero_0gba_s, + store_pixel_mfcolor_zero_rgba_s, + }, + { + store_pixel_mfcolor_one_0000, + store_pixel_mfcolor_one_r000_s, + store_pixel_mfcolor_one_0g00_s, + store_pixel_mfcolor_one_rg00_s, + store_pixel_mfcolor_one_00b0, + store_pixel_mfcolor_one_r0b0_s, + store_pixel_mfcolor_one_0gb0_s, + store_pixel_mfcolor_one_rgb0_s, + store_pixel_mfcolor_one_000a, + store_pixel_mfcolor_one_r00a_s, + store_pixel_mfcolor_one_0g0a_s, + store_pixel_mfcolor_one_rg0a_s, + store_pixel_mfcolor_one_00ba, + store_pixel_mfcolor_one_r0ba_s, + store_pixel_mfcolor_one_0gba_s, + store_pixel_mfcolor_one_rgba_s, + }, + { + store_pixel_mfcolor_icolor_0000, + store_pixel_mfcolor_icolor_r000_s, + store_pixel_mfcolor_icolor_0g00_s, + store_pixel_mfcolor_icolor_rg00_s, + store_pixel_mfcolor_icolor_00b0, + store_pixel_mfcolor_icolor_r0b0_s, + store_pixel_mfcolor_icolor_0gb0_s, + store_pixel_mfcolor_icolor_rgb0_s, + store_pixel_mfcolor_icolor_000a, + store_pixel_mfcolor_icolor_r00a_s, + store_pixel_mfcolor_icolor_0g0a_s, + store_pixel_mfcolor_icolor_rg0a_s, + store_pixel_mfcolor_icolor_00ba, + store_pixel_mfcolor_icolor_r0ba_s, + store_pixel_mfcolor_icolor_0gba_s, + store_pixel_mfcolor_icolor_rgba_s, + }, + { + store_pixel_mfcolor_micolor_0000, + store_pixel_mfcolor_micolor_r000_s, + store_pixel_mfcolor_micolor_0g00_s, + store_pixel_mfcolor_micolor_rg00_s, + store_pixel_mfcolor_micolor_00b0, + store_pixel_mfcolor_micolor_r0b0_s, + store_pixel_mfcolor_micolor_0gb0_s, + store_pixel_mfcolor_micolor_rgb0_s, + store_pixel_mfcolor_micolor_000a, + store_pixel_mfcolor_micolor_r00a_s, + store_pixel_mfcolor_micolor_0g0a_s, + store_pixel_mfcolor_micolor_rg0a_s, + store_pixel_mfcolor_micolor_00ba, + store_pixel_mfcolor_micolor_r0ba_s, + store_pixel_mfcolor_micolor_0gba_s, + store_pixel_mfcolor_micolor_rgba_s, + }, + { + store_pixel_mfcolor_fcolor_0000, + store_pixel_mfcolor_fcolor_r000_s, + store_pixel_mfcolor_fcolor_0g00_s, + store_pixel_mfcolor_fcolor_rg00_s, + store_pixel_mfcolor_fcolor_00b0, + store_pixel_mfcolor_fcolor_r0b0_s, + store_pixel_mfcolor_fcolor_0gb0_s, + store_pixel_mfcolor_fcolor_rgb0_s, + store_pixel_mfcolor_fcolor_000a, + store_pixel_mfcolor_fcolor_r00a_s, + store_pixel_mfcolor_fcolor_0g0a_s, + store_pixel_mfcolor_fcolor_rg0a_s, + store_pixel_mfcolor_fcolor_00ba, + store_pixel_mfcolor_fcolor_r0ba_s, + store_pixel_mfcolor_fcolor_0gba_s, + store_pixel_mfcolor_fcolor_rgba_s, + }, + { + store_pixel_mfcolor_mfcolor_0000, + store_pixel_mfcolor_mfcolor_r000_s, + store_pixel_mfcolor_mfcolor_0g00_s, + store_pixel_mfcolor_mfcolor_rg00_s, + store_pixel_mfcolor_mfcolor_00b0, + store_pixel_mfcolor_mfcolor_r0b0_s, + store_pixel_mfcolor_mfcolor_0gb0_s, + store_pixel_mfcolor_mfcolor_rgb0_s, + store_pixel_mfcolor_mfcolor_000a, + store_pixel_mfcolor_mfcolor_r00a_s, + store_pixel_mfcolor_mfcolor_0g0a_s, + store_pixel_mfcolor_mfcolor_rg0a_s, + store_pixel_mfcolor_mfcolor_00ba, + store_pixel_mfcolor_mfcolor_r0ba_s, + store_pixel_mfcolor_mfcolor_0gba_s, + store_pixel_mfcolor_mfcolor_rgba_s, + }, + { + store_pixel_mfcolor_ialpha_0000, + store_pixel_mfcolor_ialpha_r000_s, + store_pixel_mfcolor_ialpha_0g00_s, + store_pixel_mfcolor_ialpha_rg00_s, + store_pixel_mfcolor_ialpha_00b0, + store_pixel_mfcolor_ialpha_r0b0_s, + store_pixel_mfcolor_ialpha_0gb0_s, + store_pixel_mfcolor_ialpha_rgb0_s, + store_pixel_mfcolor_ialpha_000a, + store_pixel_mfcolor_ialpha_r00a_s, + store_pixel_mfcolor_ialpha_0g0a_s, + store_pixel_mfcolor_ialpha_rg0a_s, + store_pixel_mfcolor_ialpha_00ba, + store_pixel_mfcolor_ialpha_r0ba_s, + store_pixel_mfcolor_ialpha_0gba_s, + store_pixel_mfcolor_ialpha_rgba_s, + }, + { + store_pixel_mfcolor_mialpha_0000, + store_pixel_mfcolor_mialpha_r000_s, + store_pixel_mfcolor_mialpha_0g00_s, + store_pixel_mfcolor_mialpha_rg00_s, + store_pixel_mfcolor_mialpha_00b0, + store_pixel_mfcolor_mialpha_r0b0_s, + store_pixel_mfcolor_mialpha_0gb0_s, + store_pixel_mfcolor_mialpha_rgb0_s, + store_pixel_mfcolor_mialpha_000a, + store_pixel_mfcolor_mialpha_r00a_s, + store_pixel_mfcolor_mialpha_0g0a_s, + store_pixel_mfcolor_mialpha_rg0a_s, + store_pixel_mfcolor_mialpha_00ba, + store_pixel_mfcolor_mialpha_r0ba_s, + store_pixel_mfcolor_mialpha_0gba_s, + store_pixel_mfcolor_mialpha_rgba_s, + }, + { + store_pixel_mfcolor_falpha_0000, + store_pixel_mfcolor_falpha_r000_s, + store_pixel_mfcolor_falpha_0g00_s, + store_pixel_mfcolor_falpha_rg00_s, + store_pixel_mfcolor_falpha_00b0, + store_pixel_mfcolor_falpha_r0b0_s, + store_pixel_mfcolor_falpha_0gb0_s, + store_pixel_mfcolor_falpha_rgb0_s, + store_pixel_mfcolor_falpha_000a, + store_pixel_mfcolor_falpha_r00a_s, + store_pixel_mfcolor_falpha_0g0a_s, + store_pixel_mfcolor_falpha_rg0a_s, + store_pixel_mfcolor_falpha_00ba, + store_pixel_mfcolor_falpha_r0ba_s, + store_pixel_mfcolor_falpha_0gba_s, + store_pixel_mfcolor_falpha_rgba_s, + }, + { + store_pixel_mfcolor_mfalpha_0000, + store_pixel_mfcolor_mfalpha_r000_s, + store_pixel_mfcolor_mfalpha_0g00_s, + store_pixel_mfcolor_mfalpha_rg00_s, + store_pixel_mfcolor_mfalpha_00b0, + store_pixel_mfcolor_mfalpha_r0b0_s, + store_pixel_mfcolor_mfalpha_0gb0_s, + store_pixel_mfcolor_mfalpha_rgb0_s, + store_pixel_mfcolor_mfalpha_000a, + store_pixel_mfcolor_mfalpha_r00a_s, + store_pixel_mfcolor_mfalpha_0g0a_s, + store_pixel_mfcolor_mfalpha_rg0a_s, + store_pixel_mfcolor_mfalpha_00ba, + store_pixel_mfcolor_mfalpha_r0ba_s, + store_pixel_mfcolor_mfalpha_0gba_s, + store_pixel_mfcolor_mfalpha_rgba_s, + }, + { + store_pixel_mfcolor_ccolor_0000, + store_pixel_mfcolor_ccolor_r000_s, + store_pixel_mfcolor_ccolor_0g00_s, + store_pixel_mfcolor_ccolor_rg00_s, + store_pixel_mfcolor_ccolor_00b0, + store_pixel_mfcolor_ccolor_r0b0_s, + store_pixel_mfcolor_ccolor_0gb0_s, + store_pixel_mfcolor_ccolor_rgb0_s, + store_pixel_mfcolor_ccolor_000a, + store_pixel_mfcolor_ccolor_r00a_s, + store_pixel_mfcolor_ccolor_0g0a_s, + store_pixel_mfcolor_ccolor_rg0a_s, + store_pixel_mfcolor_ccolor_00ba, + store_pixel_mfcolor_ccolor_r0ba_s, + store_pixel_mfcolor_ccolor_0gba_s, + store_pixel_mfcolor_ccolor_rgba_s, + }, + { + store_pixel_mfcolor_mccolor_0000, + store_pixel_mfcolor_mccolor_r000_s, + store_pixel_mfcolor_mccolor_0g00_s, + store_pixel_mfcolor_mccolor_rg00_s, + store_pixel_mfcolor_mccolor_00b0, + store_pixel_mfcolor_mccolor_r0b0_s, + store_pixel_mfcolor_mccolor_0gb0_s, + store_pixel_mfcolor_mccolor_rgb0_s, + store_pixel_mfcolor_mccolor_000a, + store_pixel_mfcolor_mccolor_r00a_s, + store_pixel_mfcolor_mccolor_0g0a_s, + store_pixel_mfcolor_mccolor_rg0a_s, + store_pixel_mfcolor_mccolor_00ba, + store_pixel_mfcolor_mccolor_r0ba_s, + store_pixel_mfcolor_mccolor_0gba_s, + store_pixel_mfcolor_mccolor_rgba_s, + }, + { + store_pixel_mfcolor_calpha_0000, + store_pixel_mfcolor_calpha_r000_s, + store_pixel_mfcolor_calpha_0g00_s, + store_pixel_mfcolor_calpha_rg00_s, + store_pixel_mfcolor_calpha_00b0, + store_pixel_mfcolor_calpha_r0b0_s, + store_pixel_mfcolor_calpha_0gb0_s, + store_pixel_mfcolor_calpha_rgb0_s, + store_pixel_mfcolor_calpha_000a, + store_pixel_mfcolor_calpha_r00a_s, + store_pixel_mfcolor_calpha_0g0a_s, + store_pixel_mfcolor_calpha_rg0a_s, + store_pixel_mfcolor_calpha_00ba, + store_pixel_mfcolor_calpha_r0ba_s, + store_pixel_mfcolor_calpha_0gba_s, + store_pixel_mfcolor_calpha_rgba_s, + }, + { + store_pixel_mfcolor_mcalpha_0000, + store_pixel_mfcolor_mcalpha_r000_s, + store_pixel_mfcolor_mcalpha_0g00_s, + store_pixel_mfcolor_mcalpha_rg00_s, + store_pixel_mfcolor_mcalpha_00b0, + store_pixel_mfcolor_mcalpha_r0b0_s, + store_pixel_mfcolor_mcalpha_0gb0_s, + store_pixel_mfcolor_mcalpha_rgb0_s, + store_pixel_mfcolor_mcalpha_000a, + store_pixel_mfcolor_mcalpha_r00a_s, + store_pixel_mfcolor_mcalpha_0g0a_s, + store_pixel_mfcolor_mcalpha_rg0a_s, + store_pixel_mfcolor_mcalpha_00ba, + store_pixel_mfcolor_mcalpha_r0ba_s, + store_pixel_mfcolor_mcalpha_0gba_s, + store_pixel_mfcolor_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_ialpha_zero_0000, + store_pixel_ialpha_zero_r000_s, + store_pixel_ialpha_zero_0g00_s, + store_pixel_ialpha_zero_rg00_s, + store_pixel_ialpha_zero_00b0, + store_pixel_ialpha_zero_r0b0_s, + store_pixel_ialpha_zero_0gb0_s, + store_pixel_ialpha_zero_rgb0_s, + store_pixel_ialpha_zero_000a, + store_pixel_ialpha_zero_r00a_s, + store_pixel_ialpha_zero_0g0a_s, + store_pixel_ialpha_zero_rg0a_s, + store_pixel_ialpha_zero_00ba, + store_pixel_ialpha_zero_r0ba_s, + store_pixel_ialpha_zero_0gba_s, + store_pixel_ialpha_zero_rgba_s, + }, + { + store_pixel_ialpha_one_0000, + store_pixel_ialpha_one_r000_s, + store_pixel_ialpha_one_0g00_s, + store_pixel_ialpha_one_rg00_s, + store_pixel_ialpha_one_00b0, + store_pixel_ialpha_one_r0b0_s, + store_pixel_ialpha_one_0gb0_s, + store_pixel_ialpha_one_rgb0_s, + store_pixel_ialpha_one_000a, + store_pixel_ialpha_one_r00a_s, + store_pixel_ialpha_one_0g0a_s, + store_pixel_ialpha_one_rg0a_s, + store_pixel_ialpha_one_00ba, + store_pixel_ialpha_one_r0ba_s, + store_pixel_ialpha_one_0gba_s, + store_pixel_ialpha_one_rgba_s, + }, + { + store_pixel_ialpha_icolor_0000, + store_pixel_ialpha_icolor_r000_s, + store_pixel_ialpha_icolor_0g00_s, + store_pixel_ialpha_icolor_rg00_s, + store_pixel_ialpha_icolor_00b0, + store_pixel_ialpha_icolor_r0b0_s, + store_pixel_ialpha_icolor_0gb0_s, + store_pixel_ialpha_icolor_rgb0_s, + store_pixel_ialpha_icolor_000a, + store_pixel_ialpha_icolor_r00a_s, + store_pixel_ialpha_icolor_0g0a_s, + store_pixel_ialpha_icolor_rg0a_s, + store_pixel_ialpha_icolor_00ba, + store_pixel_ialpha_icolor_r0ba_s, + store_pixel_ialpha_icolor_0gba_s, + store_pixel_ialpha_icolor_rgba_s, + }, + { + store_pixel_ialpha_micolor_0000, + store_pixel_ialpha_micolor_r000_s, + store_pixel_ialpha_micolor_0g00_s, + store_pixel_ialpha_micolor_rg00_s, + store_pixel_ialpha_micolor_00b0, + store_pixel_ialpha_micolor_r0b0_s, + store_pixel_ialpha_micolor_0gb0_s, + store_pixel_ialpha_micolor_rgb0_s, + store_pixel_ialpha_micolor_000a, + store_pixel_ialpha_micolor_r00a_s, + store_pixel_ialpha_micolor_0g0a_s, + store_pixel_ialpha_micolor_rg0a_s, + store_pixel_ialpha_micolor_00ba, + store_pixel_ialpha_micolor_r0ba_s, + store_pixel_ialpha_micolor_0gba_s, + store_pixel_ialpha_micolor_rgba_s, + }, + { + store_pixel_ialpha_fcolor_0000, + store_pixel_ialpha_fcolor_r000_s, + store_pixel_ialpha_fcolor_0g00_s, + store_pixel_ialpha_fcolor_rg00_s, + store_pixel_ialpha_fcolor_00b0, + store_pixel_ialpha_fcolor_r0b0_s, + store_pixel_ialpha_fcolor_0gb0_s, + store_pixel_ialpha_fcolor_rgb0_s, + store_pixel_ialpha_fcolor_000a, + store_pixel_ialpha_fcolor_r00a_s, + store_pixel_ialpha_fcolor_0g0a_s, + store_pixel_ialpha_fcolor_rg0a_s, + store_pixel_ialpha_fcolor_00ba, + store_pixel_ialpha_fcolor_r0ba_s, + store_pixel_ialpha_fcolor_0gba_s, + store_pixel_ialpha_fcolor_rgba_s, + }, + { + store_pixel_ialpha_mfcolor_0000, + store_pixel_ialpha_mfcolor_r000_s, + store_pixel_ialpha_mfcolor_0g00_s, + store_pixel_ialpha_mfcolor_rg00_s, + store_pixel_ialpha_mfcolor_00b0, + store_pixel_ialpha_mfcolor_r0b0_s, + store_pixel_ialpha_mfcolor_0gb0_s, + store_pixel_ialpha_mfcolor_rgb0_s, + store_pixel_ialpha_mfcolor_000a, + store_pixel_ialpha_mfcolor_r00a_s, + store_pixel_ialpha_mfcolor_0g0a_s, + store_pixel_ialpha_mfcolor_rg0a_s, + store_pixel_ialpha_mfcolor_00ba, + store_pixel_ialpha_mfcolor_r0ba_s, + store_pixel_ialpha_mfcolor_0gba_s, + store_pixel_ialpha_mfcolor_rgba_s, + }, + { + store_pixel_ialpha_ialpha_0000, + store_pixel_ialpha_ialpha_r000_s, + store_pixel_ialpha_ialpha_0g00_s, + store_pixel_ialpha_ialpha_rg00_s, + store_pixel_ialpha_ialpha_00b0, + store_pixel_ialpha_ialpha_r0b0_s, + store_pixel_ialpha_ialpha_0gb0_s, + store_pixel_ialpha_ialpha_rgb0_s, + store_pixel_ialpha_ialpha_000a, + store_pixel_ialpha_ialpha_r00a_s, + store_pixel_ialpha_ialpha_0g0a_s, + store_pixel_ialpha_ialpha_rg0a_s, + store_pixel_ialpha_ialpha_00ba, + store_pixel_ialpha_ialpha_r0ba_s, + store_pixel_ialpha_ialpha_0gba_s, + store_pixel_ialpha_ialpha_rgba_s, + }, + { + store_pixel_ialpha_mialpha_0000, + store_pixel_ialpha_mialpha_r000_s, + store_pixel_ialpha_mialpha_0g00_s, + store_pixel_ialpha_mialpha_rg00_s, + store_pixel_ialpha_mialpha_00b0, + store_pixel_ialpha_mialpha_r0b0_s, + store_pixel_ialpha_mialpha_0gb0_s, + store_pixel_ialpha_mialpha_rgb0_s, + store_pixel_ialpha_mialpha_000a, + store_pixel_ialpha_mialpha_r00a_s, + store_pixel_ialpha_mialpha_0g0a_s, + store_pixel_ialpha_mialpha_rg0a_s, + store_pixel_ialpha_mialpha_00ba, + store_pixel_ialpha_mialpha_r0ba_s, + store_pixel_ialpha_mialpha_0gba_s, + store_pixel_ialpha_mialpha_rgba_s, + }, + { + store_pixel_ialpha_falpha_0000, + store_pixel_ialpha_falpha_r000_s, + store_pixel_ialpha_falpha_0g00_s, + store_pixel_ialpha_falpha_rg00_s, + store_pixel_ialpha_falpha_00b0, + store_pixel_ialpha_falpha_r0b0_s, + store_pixel_ialpha_falpha_0gb0_s, + store_pixel_ialpha_falpha_rgb0_s, + store_pixel_ialpha_falpha_000a, + store_pixel_ialpha_falpha_r00a_s, + store_pixel_ialpha_falpha_0g0a_s, + store_pixel_ialpha_falpha_rg0a_s, + store_pixel_ialpha_falpha_00ba, + store_pixel_ialpha_falpha_r0ba_s, + store_pixel_ialpha_falpha_0gba_s, + store_pixel_ialpha_falpha_rgba_s, + }, + { + store_pixel_ialpha_mfalpha_0000, + store_pixel_ialpha_mfalpha_r000_s, + store_pixel_ialpha_mfalpha_0g00_s, + store_pixel_ialpha_mfalpha_rg00_s, + store_pixel_ialpha_mfalpha_00b0, + store_pixel_ialpha_mfalpha_r0b0_s, + store_pixel_ialpha_mfalpha_0gb0_s, + store_pixel_ialpha_mfalpha_rgb0_s, + store_pixel_ialpha_mfalpha_000a, + store_pixel_ialpha_mfalpha_r00a_s, + store_pixel_ialpha_mfalpha_0g0a_s, + store_pixel_ialpha_mfalpha_rg0a_s, + store_pixel_ialpha_mfalpha_00ba, + store_pixel_ialpha_mfalpha_r0ba_s, + store_pixel_ialpha_mfalpha_0gba_s, + store_pixel_ialpha_mfalpha_rgba_s, + }, + { + store_pixel_ialpha_ccolor_0000, + store_pixel_ialpha_ccolor_r000_s, + store_pixel_ialpha_ccolor_0g00_s, + store_pixel_ialpha_ccolor_rg00_s, + store_pixel_ialpha_ccolor_00b0, + store_pixel_ialpha_ccolor_r0b0_s, + store_pixel_ialpha_ccolor_0gb0_s, + store_pixel_ialpha_ccolor_rgb0_s, + store_pixel_ialpha_ccolor_000a, + store_pixel_ialpha_ccolor_r00a_s, + store_pixel_ialpha_ccolor_0g0a_s, + store_pixel_ialpha_ccolor_rg0a_s, + store_pixel_ialpha_ccolor_00ba, + store_pixel_ialpha_ccolor_r0ba_s, + store_pixel_ialpha_ccolor_0gba_s, + store_pixel_ialpha_ccolor_rgba_s, + }, + { + store_pixel_ialpha_mccolor_0000, + store_pixel_ialpha_mccolor_r000_s, + store_pixel_ialpha_mccolor_0g00_s, + store_pixel_ialpha_mccolor_rg00_s, + store_pixel_ialpha_mccolor_00b0, + store_pixel_ialpha_mccolor_r0b0_s, + store_pixel_ialpha_mccolor_0gb0_s, + store_pixel_ialpha_mccolor_rgb0_s, + store_pixel_ialpha_mccolor_000a, + store_pixel_ialpha_mccolor_r00a_s, + store_pixel_ialpha_mccolor_0g0a_s, + store_pixel_ialpha_mccolor_rg0a_s, + store_pixel_ialpha_mccolor_00ba, + store_pixel_ialpha_mccolor_r0ba_s, + store_pixel_ialpha_mccolor_0gba_s, + store_pixel_ialpha_mccolor_rgba_s, + }, + { + store_pixel_ialpha_calpha_0000, + store_pixel_ialpha_calpha_r000_s, + store_pixel_ialpha_calpha_0g00_s, + store_pixel_ialpha_calpha_rg00_s, + store_pixel_ialpha_calpha_00b0, + store_pixel_ialpha_calpha_r0b0_s, + store_pixel_ialpha_calpha_0gb0_s, + store_pixel_ialpha_calpha_rgb0_s, + store_pixel_ialpha_calpha_000a, + store_pixel_ialpha_calpha_r00a_s, + store_pixel_ialpha_calpha_0g0a_s, + store_pixel_ialpha_calpha_rg0a_s, + store_pixel_ialpha_calpha_00ba, + store_pixel_ialpha_calpha_r0ba_s, + store_pixel_ialpha_calpha_0gba_s, + store_pixel_ialpha_calpha_rgba_s, + }, + { + store_pixel_ialpha_mcalpha_0000, + store_pixel_ialpha_mcalpha_r000_s, + store_pixel_ialpha_mcalpha_0g00_s, + store_pixel_ialpha_mcalpha_rg00_s, + store_pixel_ialpha_mcalpha_00b0, + store_pixel_ialpha_mcalpha_r0b0_s, + store_pixel_ialpha_mcalpha_0gb0_s, + store_pixel_ialpha_mcalpha_rgb0_s, + store_pixel_ialpha_mcalpha_000a, + store_pixel_ialpha_mcalpha_r00a_s, + store_pixel_ialpha_mcalpha_0g0a_s, + store_pixel_ialpha_mcalpha_rg0a_s, + store_pixel_ialpha_mcalpha_00ba, + store_pixel_ialpha_mcalpha_r0ba_s, + store_pixel_ialpha_mcalpha_0gba_s, + store_pixel_ialpha_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_mialpha_zero_0000, + store_pixel_mialpha_zero_r000_s, + store_pixel_mialpha_zero_0g00_s, + store_pixel_mialpha_zero_rg00_s, + store_pixel_mialpha_zero_00b0, + store_pixel_mialpha_zero_r0b0_s, + store_pixel_mialpha_zero_0gb0_s, + store_pixel_mialpha_zero_rgb0_s, + store_pixel_mialpha_zero_000a, + store_pixel_mialpha_zero_r00a_s, + store_pixel_mialpha_zero_0g0a_s, + store_pixel_mialpha_zero_rg0a_s, + store_pixel_mialpha_zero_00ba, + store_pixel_mialpha_zero_r0ba_s, + store_pixel_mialpha_zero_0gba_s, + store_pixel_mialpha_zero_rgba_s, + }, + { + store_pixel_mialpha_one_0000, + store_pixel_mialpha_one_r000_s, + store_pixel_mialpha_one_0g00_s, + store_pixel_mialpha_one_rg00_s, + store_pixel_mialpha_one_00b0, + store_pixel_mialpha_one_r0b0_s, + store_pixel_mialpha_one_0gb0_s, + store_pixel_mialpha_one_rgb0_s, + store_pixel_mialpha_one_000a, + store_pixel_mialpha_one_r00a_s, + store_pixel_mialpha_one_0g0a_s, + store_pixel_mialpha_one_rg0a_s, + store_pixel_mialpha_one_00ba, + store_pixel_mialpha_one_r0ba_s, + store_pixel_mialpha_one_0gba_s, + store_pixel_mialpha_one_rgba_s, + }, + { + store_pixel_mialpha_icolor_0000, + store_pixel_mialpha_icolor_r000_s, + store_pixel_mialpha_icolor_0g00_s, + store_pixel_mialpha_icolor_rg00_s, + store_pixel_mialpha_icolor_00b0, + store_pixel_mialpha_icolor_r0b0_s, + store_pixel_mialpha_icolor_0gb0_s, + store_pixel_mialpha_icolor_rgb0_s, + store_pixel_mialpha_icolor_000a, + store_pixel_mialpha_icolor_r00a_s, + store_pixel_mialpha_icolor_0g0a_s, + store_pixel_mialpha_icolor_rg0a_s, + store_pixel_mialpha_icolor_00ba, + store_pixel_mialpha_icolor_r0ba_s, + store_pixel_mialpha_icolor_0gba_s, + store_pixel_mialpha_icolor_rgba_s, + }, + { + store_pixel_mialpha_micolor_0000, + store_pixel_mialpha_micolor_r000_s, + store_pixel_mialpha_micolor_0g00_s, + store_pixel_mialpha_micolor_rg00_s, + store_pixel_mialpha_micolor_00b0, + store_pixel_mialpha_micolor_r0b0_s, + store_pixel_mialpha_micolor_0gb0_s, + store_pixel_mialpha_micolor_rgb0_s, + store_pixel_mialpha_micolor_000a, + store_pixel_mialpha_micolor_r00a_s, + store_pixel_mialpha_micolor_0g0a_s, + store_pixel_mialpha_micolor_rg0a_s, + store_pixel_mialpha_micolor_00ba, + store_pixel_mialpha_micolor_r0ba_s, + store_pixel_mialpha_micolor_0gba_s, + store_pixel_mialpha_micolor_rgba_s, + }, + { + store_pixel_mialpha_fcolor_0000, + store_pixel_mialpha_fcolor_r000_s, + store_pixel_mialpha_fcolor_0g00_s, + store_pixel_mialpha_fcolor_rg00_s, + store_pixel_mialpha_fcolor_00b0, + store_pixel_mialpha_fcolor_r0b0_s, + store_pixel_mialpha_fcolor_0gb0_s, + store_pixel_mialpha_fcolor_rgb0_s, + store_pixel_mialpha_fcolor_000a, + store_pixel_mialpha_fcolor_r00a_s, + store_pixel_mialpha_fcolor_0g0a_s, + store_pixel_mialpha_fcolor_rg0a_s, + store_pixel_mialpha_fcolor_00ba, + store_pixel_mialpha_fcolor_r0ba_s, + store_pixel_mialpha_fcolor_0gba_s, + store_pixel_mialpha_fcolor_rgba_s, + }, + { + store_pixel_mialpha_mfcolor_0000, + store_pixel_mialpha_mfcolor_r000_s, + store_pixel_mialpha_mfcolor_0g00_s, + store_pixel_mialpha_mfcolor_rg00_s, + store_pixel_mialpha_mfcolor_00b0, + store_pixel_mialpha_mfcolor_r0b0_s, + store_pixel_mialpha_mfcolor_0gb0_s, + store_pixel_mialpha_mfcolor_rgb0_s, + store_pixel_mialpha_mfcolor_000a, + store_pixel_mialpha_mfcolor_r00a_s, + store_pixel_mialpha_mfcolor_0g0a_s, + store_pixel_mialpha_mfcolor_rg0a_s, + store_pixel_mialpha_mfcolor_00ba, + store_pixel_mialpha_mfcolor_r0ba_s, + store_pixel_mialpha_mfcolor_0gba_s, + store_pixel_mialpha_mfcolor_rgba_s, + }, + { + store_pixel_mialpha_ialpha_0000, + store_pixel_mialpha_ialpha_r000_s, + store_pixel_mialpha_ialpha_0g00_s, + store_pixel_mialpha_ialpha_rg00_s, + store_pixel_mialpha_ialpha_00b0, + store_pixel_mialpha_ialpha_r0b0_s, + store_pixel_mialpha_ialpha_0gb0_s, + store_pixel_mialpha_ialpha_rgb0_s, + store_pixel_mialpha_ialpha_000a, + store_pixel_mialpha_ialpha_r00a_s, + store_pixel_mialpha_ialpha_0g0a_s, + store_pixel_mialpha_ialpha_rg0a_s, + store_pixel_mialpha_ialpha_00ba, + store_pixel_mialpha_ialpha_r0ba_s, + store_pixel_mialpha_ialpha_0gba_s, + store_pixel_mialpha_ialpha_rgba_s, + }, + { + store_pixel_mialpha_mialpha_0000, + store_pixel_mialpha_mialpha_r000_s, + store_pixel_mialpha_mialpha_0g00_s, + store_pixel_mialpha_mialpha_rg00_s, + store_pixel_mialpha_mialpha_00b0, + store_pixel_mialpha_mialpha_r0b0_s, + store_pixel_mialpha_mialpha_0gb0_s, + store_pixel_mialpha_mialpha_rgb0_s, + store_pixel_mialpha_mialpha_000a, + store_pixel_mialpha_mialpha_r00a_s, + store_pixel_mialpha_mialpha_0g0a_s, + store_pixel_mialpha_mialpha_rg0a_s, + store_pixel_mialpha_mialpha_00ba, + store_pixel_mialpha_mialpha_r0ba_s, + store_pixel_mialpha_mialpha_0gba_s, + store_pixel_mialpha_mialpha_rgba_s, + }, + { + store_pixel_mialpha_falpha_0000, + store_pixel_mialpha_falpha_r000_s, + store_pixel_mialpha_falpha_0g00_s, + store_pixel_mialpha_falpha_rg00_s, + store_pixel_mialpha_falpha_00b0, + store_pixel_mialpha_falpha_r0b0_s, + store_pixel_mialpha_falpha_0gb0_s, + store_pixel_mialpha_falpha_rgb0_s, + store_pixel_mialpha_falpha_000a, + store_pixel_mialpha_falpha_r00a_s, + store_pixel_mialpha_falpha_0g0a_s, + store_pixel_mialpha_falpha_rg0a_s, + store_pixel_mialpha_falpha_00ba, + store_pixel_mialpha_falpha_r0ba_s, + store_pixel_mialpha_falpha_0gba_s, + store_pixel_mialpha_falpha_rgba_s, + }, + { + store_pixel_mialpha_mfalpha_0000, + store_pixel_mialpha_mfalpha_r000_s, + store_pixel_mialpha_mfalpha_0g00_s, + store_pixel_mialpha_mfalpha_rg00_s, + store_pixel_mialpha_mfalpha_00b0, + store_pixel_mialpha_mfalpha_r0b0_s, + store_pixel_mialpha_mfalpha_0gb0_s, + store_pixel_mialpha_mfalpha_rgb0_s, + store_pixel_mialpha_mfalpha_000a, + store_pixel_mialpha_mfalpha_r00a_s, + store_pixel_mialpha_mfalpha_0g0a_s, + store_pixel_mialpha_mfalpha_rg0a_s, + store_pixel_mialpha_mfalpha_00ba, + store_pixel_mialpha_mfalpha_r0ba_s, + store_pixel_mialpha_mfalpha_0gba_s, + store_pixel_mialpha_mfalpha_rgba_s, + }, + { + store_pixel_mialpha_ccolor_0000, + store_pixel_mialpha_ccolor_r000_s, + store_pixel_mialpha_ccolor_0g00_s, + store_pixel_mialpha_ccolor_rg00_s, + store_pixel_mialpha_ccolor_00b0, + store_pixel_mialpha_ccolor_r0b0_s, + store_pixel_mialpha_ccolor_0gb0_s, + store_pixel_mialpha_ccolor_rgb0_s, + store_pixel_mialpha_ccolor_000a, + store_pixel_mialpha_ccolor_r00a_s, + store_pixel_mialpha_ccolor_0g0a_s, + store_pixel_mialpha_ccolor_rg0a_s, + store_pixel_mialpha_ccolor_00ba, + store_pixel_mialpha_ccolor_r0ba_s, + store_pixel_mialpha_ccolor_0gba_s, + store_pixel_mialpha_ccolor_rgba_s, + }, + { + store_pixel_mialpha_mccolor_0000, + store_pixel_mialpha_mccolor_r000_s, + store_pixel_mialpha_mccolor_0g00_s, + store_pixel_mialpha_mccolor_rg00_s, + store_pixel_mialpha_mccolor_00b0, + store_pixel_mialpha_mccolor_r0b0_s, + store_pixel_mialpha_mccolor_0gb0_s, + store_pixel_mialpha_mccolor_rgb0_s, + store_pixel_mialpha_mccolor_000a, + store_pixel_mialpha_mccolor_r00a_s, + store_pixel_mialpha_mccolor_0g0a_s, + store_pixel_mialpha_mccolor_rg0a_s, + store_pixel_mialpha_mccolor_00ba, + store_pixel_mialpha_mccolor_r0ba_s, + store_pixel_mialpha_mccolor_0gba_s, + store_pixel_mialpha_mccolor_rgba_s, + }, + { + store_pixel_mialpha_calpha_0000, + store_pixel_mialpha_calpha_r000_s, + store_pixel_mialpha_calpha_0g00_s, + store_pixel_mialpha_calpha_rg00_s, + store_pixel_mialpha_calpha_00b0, + store_pixel_mialpha_calpha_r0b0_s, + store_pixel_mialpha_calpha_0gb0_s, + store_pixel_mialpha_calpha_rgb0_s, + store_pixel_mialpha_calpha_000a, + store_pixel_mialpha_calpha_r00a_s, + store_pixel_mialpha_calpha_0g0a_s, + store_pixel_mialpha_calpha_rg0a_s, + store_pixel_mialpha_calpha_00ba, + store_pixel_mialpha_calpha_r0ba_s, + store_pixel_mialpha_calpha_0gba_s, + store_pixel_mialpha_calpha_rgba_s, + }, + { + store_pixel_mialpha_mcalpha_0000, + store_pixel_mialpha_mcalpha_r000_s, + store_pixel_mialpha_mcalpha_0g00_s, + store_pixel_mialpha_mcalpha_rg00_s, + store_pixel_mialpha_mcalpha_00b0, + store_pixel_mialpha_mcalpha_r0b0_s, + store_pixel_mialpha_mcalpha_0gb0_s, + store_pixel_mialpha_mcalpha_rgb0_s, + store_pixel_mialpha_mcalpha_000a, + store_pixel_mialpha_mcalpha_r00a_s, + store_pixel_mialpha_mcalpha_0g0a_s, + store_pixel_mialpha_mcalpha_rg0a_s, + store_pixel_mialpha_mcalpha_00ba, + store_pixel_mialpha_mcalpha_r0ba_s, + store_pixel_mialpha_mcalpha_0gba_s, + store_pixel_mialpha_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_falpha_zero_0000, + store_pixel_falpha_zero_r000_s, + store_pixel_falpha_zero_0g00_s, + store_pixel_falpha_zero_rg00_s, + store_pixel_falpha_zero_00b0, + store_pixel_falpha_zero_r0b0_s, + store_pixel_falpha_zero_0gb0_s, + store_pixel_falpha_zero_rgb0_s, + store_pixel_falpha_zero_000a, + store_pixel_falpha_zero_r00a_s, + store_pixel_falpha_zero_0g0a_s, + store_pixel_falpha_zero_rg0a_s, + store_pixel_falpha_zero_00ba, + store_pixel_falpha_zero_r0ba_s, + store_pixel_falpha_zero_0gba_s, + store_pixel_falpha_zero_rgba_s, + }, + { + store_pixel_falpha_one_0000, + store_pixel_falpha_one_r000_s, + store_pixel_falpha_one_0g00_s, + store_pixel_falpha_one_rg00_s, + store_pixel_falpha_one_00b0, + store_pixel_falpha_one_r0b0_s, + store_pixel_falpha_one_0gb0_s, + store_pixel_falpha_one_rgb0_s, + store_pixel_falpha_one_000a, + store_pixel_falpha_one_r00a_s, + store_pixel_falpha_one_0g0a_s, + store_pixel_falpha_one_rg0a_s, + store_pixel_falpha_one_00ba, + store_pixel_falpha_one_r0ba_s, + store_pixel_falpha_one_0gba_s, + store_pixel_falpha_one_rgba_s, + }, + { + store_pixel_falpha_icolor_0000, + store_pixel_falpha_icolor_r000_s, + store_pixel_falpha_icolor_0g00_s, + store_pixel_falpha_icolor_rg00_s, + store_pixel_falpha_icolor_00b0, + store_pixel_falpha_icolor_r0b0_s, + store_pixel_falpha_icolor_0gb0_s, + store_pixel_falpha_icolor_rgb0_s, + store_pixel_falpha_icolor_000a, + store_pixel_falpha_icolor_r00a_s, + store_pixel_falpha_icolor_0g0a_s, + store_pixel_falpha_icolor_rg0a_s, + store_pixel_falpha_icolor_00ba, + store_pixel_falpha_icolor_r0ba_s, + store_pixel_falpha_icolor_0gba_s, + store_pixel_falpha_icolor_rgba_s, + }, + { + store_pixel_falpha_micolor_0000, + store_pixel_falpha_micolor_r000_s, + store_pixel_falpha_micolor_0g00_s, + store_pixel_falpha_micolor_rg00_s, + store_pixel_falpha_micolor_00b0, + store_pixel_falpha_micolor_r0b0_s, + store_pixel_falpha_micolor_0gb0_s, + store_pixel_falpha_micolor_rgb0_s, + store_pixel_falpha_micolor_000a, + store_pixel_falpha_micolor_r00a_s, + store_pixel_falpha_micolor_0g0a_s, + store_pixel_falpha_micolor_rg0a_s, + store_pixel_falpha_micolor_00ba, + store_pixel_falpha_micolor_r0ba_s, + store_pixel_falpha_micolor_0gba_s, + store_pixel_falpha_micolor_rgba_s, + }, + { + store_pixel_falpha_fcolor_0000, + store_pixel_falpha_fcolor_r000_s, + store_pixel_falpha_fcolor_0g00_s, + store_pixel_falpha_fcolor_rg00_s, + store_pixel_falpha_fcolor_00b0, + store_pixel_falpha_fcolor_r0b0_s, + store_pixel_falpha_fcolor_0gb0_s, + store_pixel_falpha_fcolor_rgb0_s, + store_pixel_falpha_fcolor_000a, + store_pixel_falpha_fcolor_r00a_s, + store_pixel_falpha_fcolor_0g0a_s, + store_pixel_falpha_fcolor_rg0a_s, + store_pixel_falpha_fcolor_00ba, + store_pixel_falpha_fcolor_r0ba_s, + store_pixel_falpha_fcolor_0gba_s, + store_pixel_falpha_fcolor_rgba_s, + }, + { + store_pixel_falpha_mfcolor_0000, + store_pixel_falpha_mfcolor_r000_s, + store_pixel_falpha_mfcolor_0g00_s, + store_pixel_falpha_mfcolor_rg00_s, + store_pixel_falpha_mfcolor_00b0, + store_pixel_falpha_mfcolor_r0b0_s, + store_pixel_falpha_mfcolor_0gb0_s, + store_pixel_falpha_mfcolor_rgb0_s, + store_pixel_falpha_mfcolor_000a, + store_pixel_falpha_mfcolor_r00a_s, + store_pixel_falpha_mfcolor_0g0a_s, + store_pixel_falpha_mfcolor_rg0a_s, + store_pixel_falpha_mfcolor_00ba, + store_pixel_falpha_mfcolor_r0ba_s, + store_pixel_falpha_mfcolor_0gba_s, + store_pixel_falpha_mfcolor_rgba_s, + }, + { + store_pixel_falpha_ialpha_0000, + store_pixel_falpha_ialpha_r000_s, + store_pixel_falpha_ialpha_0g00_s, + store_pixel_falpha_ialpha_rg00_s, + store_pixel_falpha_ialpha_00b0, + store_pixel_falpha_ialpha_r0b0_s, + store_pixel_falpha_ialpha_0gb0_s, + store_pixel_falpha_ialpha_rgb0_s, + store_pixel_falpha_ialpha_000a, + store_pixel_falpha_ialpha_r00a_s, + store_pixel_falpha_ialpha_0g0a_s, + store_pixel_falpha_ialpha_rg0a_s, + store_pixel_falpha_ialpha_00ba, + store_pixel_falpha_ialpha_r0ba_s, + store_pixel_falpha_ialpha_0gba_s, + store_pixel_falpha_ialpha_rgba_s, + }, + { + store_pixel_falpha_mialpha_0000, + store_pixel_falpha_mialpha_r000_s, + store_pixel_falpha_mialpha_0g00_s, + store_pixel_falpha_mialpha_rg00_s, + store_pixel_falpha_mialpha_00b0, + store_pixel_falpha_mialpha_r0b0_s, + store_pixel_falpha_mialpha_0gb0_s, + store_pixel_falpha_mialpha_rgb0_s, + store_pixel_falpha_mialpha_000a, + store_pixel_falpha_mialpha_r00a_s, + store_pixel_falpha_mialpha_0g0a_s, + store_pixel_falpha_mialpha_rg0a_s, + store_pixel_falpha_mialpha_00ba, + store_pixel_falpha_mialpha_r0ba_s, + store_pixel_falpha_mialpha_0gba_s, + store_pixel_falpha_mialpha_rgba_s, + }, + { + store_pixel_falpha_falpha_0000, + store_pixel_falpha_falpha_r000_s, + store_pixel_falpha_falpha_0g00_s, + store_pixel_falpha_falpha_rg00_s, + store_pixel_falpha_falpha_00b0, + store_pixel_falpha_falpha_r0b0_s, + store_pixel_falpha_falpha_0gb0_s, + store_pixel_falpha_falpha_rgb0_s, + store_pixel_falpha_falpha_000a, + store_pixel_falpha_falpha_r00a_s, + store_pixel_falpha_falpha_0g0a_s, + store_pixel_falpha_falpha_rg0a_s, + store_pixel_falpha_falpha_00ba, + store_pixel_falpha_falpha_r0ba_s, + store_pixel_falpha_falpha_0gba_s, + store_pixel_falpha_falpha_rgba_s, + }, + { + store_pixel_falpha_mfalpha_0000, + store_pixel_falpha_mfalpha_r000_s, + store_pixel_falpha_mfalpha_0g00_s, + store_pixel_falpha_mfalpha_rg00_s, + store_pixel_falpha_mfalpha_00b0, + store_pixel_falpha_mfalpha_r0b0_s, + store_pixel_falpha_mfalpha_0gb0_s, + store_pixel_falpha_mfalpha_rgb0_s, + store_pixel_falpha_mfalpha_000a, + store_pixel_falpha_mfalpha_r00a_s, + store_pixel_falpha_mfalpha_0g0a_s, + store_pixel_falpha_mfalpha_rg0a_s, + store_pixel_falpha_mfalpha_00ba, + store_pixel_falpha_mfalpha_r0ba_s, + store_pixel_falpha_mfalpha_0gba_s, + store_pixel_falpha_mfalpha_rgba_s, + }, + { + store_pixel_falpha_ccolor_0000, + store_pixel_falpha_ccolor_r000_s, + store_pixel_falpha_ccolor_0g00_s, + store_pixel_falpha_ccolor_rg00_s, + store_pixel_falpha_ccolor_00b0, + store_pixel_falpha_ccolor_r0b0_s, + store_pixel_falpha_ccolor_0gb0_s, + store_pixel_falpha_ccolor_rgb0_s, + store_pixel_falpha_ccolor_000a, + store_pixel_falpha_ccolor_r00a_s, + store_pixel_falpha_ccolor_0g0a_s, + store_pixel_falpha_ccolor_rg0a_s, + store_pixel_falpha_ccolor_00ba, + store_pixel_falpha_ccolor_r0ba_s, + store_pixel_falpha_ccolor_0gba_s, + store_pixel_falpha_ccolor_rgba_s, + }, + { + store_pixel_falpha_mccolor_0000, + store_pixel_falpha_mccolor_r000_s, + store_pixel_falpha_mccolor_0g00_s, + store_pixel_falpha_mccolor_rg00_s, + store_pixel_falpha_mccolor_00b0, + store_pixel_falpha_mccolor_r0b0_s, + store_pixel_falpha_mccolor_0gb0_s, + store_pixel_falpha_mccolor_rgb0_s, + store_pixel_falpha_mccolor_000a, + store_pixel_falpha_mccolor_r00a_s, + store_pixel_falpha_mccolor_0g0a_s, + store_pixel_falpha_mccolor_rg0a_s, + store_pixel_falpha_mccolor_00ba, + store_pixel_falpha_mccolor_r0ba_s, + store_pixel_falpha_mccolor_0gba_s, + store_pixel_falpha_mccolor_rgba_s, + }, + { + store_pixel_falpha_calpha_0000, + store_pixel_falpha_calpha_r000_s, + store_pixel_falpha_calpha_0g00_s, + store_pixel_falpha_calpha_rg00_s, + store_pixel_falpha_calpha_00b0, + store_pixel_falpha_calpha_r0b0_s, + store_pixel_falpha_calpha_0gb0_s, + store_pixel_falpha_calpha_rgb0_s, + store_pixel_falpha_calpha_000a, + store_pixel_falpha_calpha_r00a_s, + store_pixel_falpha_calpha_0g0a_s, + store_pixel_falpha_calpha_rg0a_s, + store_pixel_falpha_calpha_00ba, + store_pixel_falpha_calpha_r0ba_s, + store_pixel_falpha_calpha_0gba_s, + store_pixel_falpha_calpha_rgba_s, + }, + { + store_pixel_falpha_mcalpha_0000, + store_pixel_falpha_mcalpha_r000_s, + store_pixel_falpha_mcalpha_0g00_s, + store_pixel_falpha_mcalpha_rg00_s, + store_pixel_falpha_mcalpha_00b0, + store_pixel_falpha_mcalpha_r0b0_s, + store_pixel_falpha_mcalpha_0gb0_s, + store_pixel_falpha_mcalpha_rgb0_s, + store_pixel_falpha_mcalpha_000a, + store_pixel_falpha_mcalpha_r00a_s, + store_pixel_falpha_mcalpha_0g0a_s, + store_pixel_falpha_mcalpha_rg0a_s, + store_pixel_falpha_mcalpha_00ba, + store_pixel_falpha_mcalpha_r0ba_s, + store_pixel_falpha_mcalpha_0gba_s, + store_pixel_falpha_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_mfalpha_zero_0000, + store_pixel_mfalpha_zero_r000_s, + store_pixel_mfalpha_zero_0g00_s, + store_pixel_mfalpha_zero_rg00_s, + store_pixel_mfalpha_zero_00b0, + store_pixel_mfalpha_zero_r0b0_s, + store_pixel_mfalpha_zero_0gb0_s, + store_pixel_mfalpha_zero_rgb0_s, + store_pixel_mfalpha_zero_000a, + store_pixel_mfalpha_zero_r00a_s, + store_pixel_mfalpha_zero_0g0a_s, + store_pixel_mfalpha_zero_rg0a_s, + store_pixel_mfalpha_zero_00ba, + store_pixel_mfalpha_zero_r0ba_s, + store_pixel_mfalpha_zero_0gba_s, + store_pixel_mfalpha_zero_rgba_s, + }, + { + store_pixel_mfalpha_one_0000, + store_pixel_mfalpha_one_r000_s, + store_pixel_mfalpha_one_0g00_s, + store_pixel_mfalpha_one_rg00_s, + store_pixel_mfalpha_one_00b0, + store_pixel_mfalpha_one_r0b0_s, + store_pixel_mfalpha_one_0gb0_s, + store_pixel_mfalpha_one_rgb0_s, + store_pixel_mfalpha_one_000a, + store_pixel_mfalpha_one_r00a_s, + store_pixel_mfalpha_one_0g0a_s, + store_pixel_mfalpha_one_rg0a_s, + store_pixel_mfalpha_one_00ba, + store_pixel_mfalpha_one_r0ba_s, + store_pixel_mfalpha_one_0gba_s, + store_pixel_mfalpha_one_rgba_s, + }, + { + store_pixel_mfalpha_icolor_0000, + store_pixel_mfalpha_icolor_r000_s, + store_pixel_mfalpha_icolor_0g00_s, + store_pixel_mfalpha_icolor_rg00_s, + store_pixel_mfalpha_icolor_00b0, + store_pixel_mfalpha_icolor_r0b0_s, + store_pixel_mfalpha_icolor_0gb0_s, + store_pixel_mfalpha_icolor_rgb0_s, + store_pixel_mfalpha_icolor_000a, + store_pixel_mfalpha_icolor_r00a_s, + store_pixel_mfalpha_icolor_0g0a_s, + store_pixel_mfalpha_icolor_rg0a_s, + store_pixel_mfalpha_icolor_00ba, + store_pixel_mfalpha_icolor_r0ba_s, + store_pixel_mfalpha_icolor_0gba_s, + store_pixel_mfalpha_icolor_rgba_s, + }, + { + store_pixel_mfalpha_micolor_0000, + store_pixel_mfalpha_micolor_r000_s, + store_pixel_mfalpha_micolor_0g00_s, + store_pixel_mfalpha_micolor_rg00_s, + store_pixel_mfalpha_micolor_00b0, + store_pixel_mfalpha_micolor_r0b0_s, + store_pixel_mfalpha_micolor_0gb0_s, + store_pixel_mfalpha_micolor_rgb0_s, + store_pixel_mfalpha_micolor_000a, + store_pixel_mfalpha_micolor_r00a_s, + store_pixel_mfalpha_micolor_0g0a_s, + store_pixel_mfalpha_micolor_rg0a_s, + store_pixel_mfalpha_micolor_00ba, + store_pixel_mfalpha_micolor_r0ba_s, + store_pixel_mfalpha_micolor_0gba_s, + store_pixel_mfalpha_micolor_rgba_s, + }, + { + store_pixel_mfalpha_fcolor_0000, + store_pixel_mfalpha_fcolor_r000_s, + store_pixel_mfalpha_fcolor_0g00_s, + store_pixel_mfalpha_fcolor_rg00_s, + store_pixel_mfalpha_fcolor_00b0, + store_pixel_mfalpha_fcolor_r0b0_s, + store_pixel_mfalpha_fcolor_0gb0_s, + store_pixel_mfalpha_fcolor_rgb0_s, + store_pixel_mfalpha_fcolor_000a, + store_pixel_mfalpha_fcolor_r00a_s, + store_pixel_mfalpha_fcolor_0g0a_s, + store_pixel_mfalpha_fcolor_rg0a_s, + store_pixel_mfalpha_fcolor_00ba, + store_pixel_mfalpha_fcolor_r0ba_s, + store_pixel_mfalpha_fcolor_0gba_s, + store_pixel_mfalpha_fcolor_rgba_s, + }, + { + store_pixel_mfalpha_mfcolor_0000, + store_pixel_mfalpha_mfcolor_r000_s, + store_pixel_mfalpha_mfcolor_0g00_s, + store_pixel_mfalpha_mfcolor_rg00_s, + store_pixel_mfalpha_mfcolor_00b0, + store_pixel_mfalpha_mfcolor_r0b0_s, + store_pixel_mfalpha_mfcolor_0gb0_s, + store_pixel_mfalpha_mfcolor_rgb0_s, + store_pixel_mfalpha_mfcolor_000a, + store_pixel_mfalpha_mfcolor_r00a_s, + store_pixel_mfalpha_mfcolor_0g0a_s, + store_pixel_mfalpha_mfcolor_rg0a_s, + store_pixel_mfalpha_mfcolor_00ba, + store_pixel_mfalpha_mfcolor_r0ba_s, + store_pixel_mfalpha_mfcolor_0gba_s, + store_pixel_mfalpha_mfcolor_rgba_s, + }, + { + store_pixel_mfalpha_ialpha_0000, + store_pixel_mfalpha_ialpha_r000_s, + store_pixel_mfalpha_ialpha_0g00_s, + store_pixel_mfalpha_ialpha_rg00_s, + store_pixel_mfalpha_ialpha_00b0, + store_pixel_mfalpha_ialpha_r0b0_s, + store_pixel_mfalpha_ialpha_0gb0_s, + store_pixel_mfalpha_ialpha_rgb0_s, + store_pixel_mfalpha_ialpha_000a, + store_pixel_mfalpha_ialpha_r00a_s, + store_pixel_mfalpha_ialpha_0g0a_s, + store_pixel_mfalpha_ialpha_rg0a_s, + store_pixel_mfalpha_ialpha_00ba, + store_pixel_mfalpha_ialpha_r0ba_s, + store_pixel_mfalpha_ialpha_0gba_s, + store_pixel_mfalpha_ialpha_rgba_s, + }, + { + store_pixel_mfalpha_mialpha_0000, + store_pixel_mfalpha_mialpha_r000_s, + store_pixel_mfalpha_mialpha_0g00_s, + store_pixel_mfalpha_mialpha_rg00_s, + store_pixel_mfalpha_mialpha_00b0, + store_pixel_mfalpha_mialpha_r0b0_s, + store_pixel_mfalpha_mialpha_0gb0_s, + store_pixel_mfalpha_mialpha_rgb0_s, + store_pixel_mfalpha_mialpha_000a, + store_pixel_mfalpha_mialpha_r00a_s, + store_pixel_mfalpha_mialpha_0g0a_s, + store_pixel_mfalpha_mialpha_rg0a_s, + store_pixel_mfalpha_mialpha_00ba, + store_pixel_mfalpha_mialpha_r0ba_s, + store_pixel_mfalpha_mialpha_0gba_s, + store_pixel_mfalpha_mialpha_rgba_s, + }, + { + store_pixel_mfalpha_falpha_0000, + store_pixel_mfalpha_falpha_r000_s, + store_pixel_mfalpha_falpha_0g00_s, + store_pixel_mfalpha_falpha_rg00_s, + store_pixel_mfalpha_falpha_00b0, + store_pixel_mfalpha_falpha_r0b0_s, + store_pixel_mfalpha_falpha_0gb0_s, + store_pixel_mfalpha_falpha_rgb0_s, + store_pixel_mfalpha_falpha_000a, + store_pixel_mfalpha_falpha_r00a_s, + store_pixel_mfalpha_falpha_0g0a_s, + store_pixel_mfalpha_falpha_rg0a_s, + store_pixel_mfalpha_falpha_00ba, + store_pixel_mfalpha_falpha_r0ba_s, + store_pixel_mfalpha_falpha_0gba_s, + store_pixel_mfalpha_falpha_rgba_s, + }, + { + store_pixel_mfalpha_mfalpha_0000, + store_pixel_mfalpha_mfalpha_r000_s, + store_pixel_mfalpha_mfalpha_0g00_s, + store_pixel_mfalpha_mfalpha_rg00_s, + store_pixel_mfalpha_mfalpha_00b0, + store_pixel_mfalpha_mfalpha_r0b0_s, + store_pixel_mfalpha_mfalpha_0gb0_s, + store_pixel_mfalpha_mfalpha_rgb0_s, + store_pixel_mfalpha_mfalpha_000a, + store_pixel_mfalpha_mfalpha_r00a_s, + store_pixel_mfalpha_mfalpha_0g0a_s, + store_pixel_mfalpha_mfalpha_rg0a_s, + store_pixel_mfalpha_mfalpha_00ba, + store_pixel_mfalpha_mfalpha_r0ba_s, + store_pixel_mfalpha_mfalpha_0gba_s, + store_pixel_mfalpha_mfalpha_rgba_s, + }, + { + store_pixel_mfalpha_ccolor_0000, + store_pixel_mfalpha_ccolor_r000_s, + store_pixel_mfalpha_ccolor_0g00_s, + store_pixel_mfalpha_ccolor_rg00_s, + store_pixel_mfalpha_ccolor_00b0, + store_pixel_mfalpha_ccolor_r0b0_s, + store_pixel_mfalpha_ccolor_0gb0_s, + store_pixel_mfalpha_ccolor_rgb0_s, + store_pixel_mfalpha_ccolor_000a, + store_pixel_mfalpha_ccolor_r00a_s, + store_pixel_mfalpha_ccolor_0g0a_s, + store_pixel_mfalpha_ccolor_rg0a_s, + store_pixel_mfalpha_ccolor_00ba, + store_pixel_mfalpha_ccolor_r0ba_s, + store_pixel_mfalpha_ccolor_0gba_s, + store_pixel_mfalpha_ccolor_rgba_s, + }, + { + store_pixel_mfalpha_mccolor_0000, + store_pixel_mfalpha_mccolor_r000_s, + store_pixel_mfalpha_mccolor_0g00_s, + store_pixel_mfalpha_mccolor_rg00_s, + store_pixel_mfalpha_mccolor_00b0, + store_pixel_mfalpha_mccolor_r0b0_s, + store_pixel_mfalpha_mccolor_0gb0_s, + store_pixel_mfalpha_mccolor_rgb0_s, + store_pixel_mfalpha_mccolor_000a, + store_pixel_mfalpha_mccolor_r00a_s, + store_pixel_mfalpha_mccolor_0g0a_s, + store_pixel_mfalpha_mccolor_rg0a_s, + store_pixel_mfalpha_mccolor_00ba, + store_pixel_mfalpha_mccolor_r0ba_s, + store_pixel_mfalpha_mccolor_0gba_s, + store_pixel_mfalpha_mccolor_rgba_s, + }, + { + store_pixel_mfalpha_calpha_0000, + store_pixel_mfalpha_calpha_r000_s, + store_pixel_mfalpha_calpha_0g00_s, + store_pixel_mfalpha_calpha_rg00_s, + store_pixel_mfalpha_calpha_00b0, + store_pixel_mfalpha_calpha_r0b0_s, + store_pixel_mfalpha_calpha_0gb0_s, + store_pixel_mfalpha_calpha_rgb0_s, + store_pixel_mfalpha_calpha_000a, + store_pixel_mfalpha_calpha_r00a_s, + store_pixel_mfalpha_calpha_0g0a_s, + store_pixel_mfalpha_calpha_rg0a_s, + store_pixel_mfalpha_calpha_00ba, + store_pixel_mfalpha_calpha_r0ba_s, + store_pixel_mfalpha_calpha_0gba_s, + store_pixel_mfalpha_calpha_rgba_s, + }, + { + store_pixel_mfalpha_mcalpha_0000, + store_pixel_mfalpha_mcalpha_r000_s, + store_pixel_mfalpha_mcalpha_0g00_s, + store_pixel_mfalpha_mcalpha_rg00_s, + store_pixel_mfalpha_mcalpha_00b0, + store_pixel_mfalpha_mcalpha_r0b0_s, + store_pixel_mfalpha_mcalpha_0gb0_s, + store_pixel_mfalpha_mcalpha_rgb0_s, + store_pixel_mfalpha_mcalpha_000a, + store_pixel_mfalpha_mcalpha_r00a_s, + store_pixel_mfalpha_mcalpha_0g0a_s, + store_pixel_mfalpha_mcalpha_rg0a_s, + store_pixel_mfalpha_mcalpha_00ba, + store_pixel_mfalpha_mcalpha_r0ba_s, + store_pixel_mfalpha_mcalpha_0gba_s, + store_pixel_mfalpha_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_ccolor_zero_0000, + store_pixel_ccolor_zero_r000_s, + store_pixel_ccolor_zero_0g00_s, + store_pixel_ccolor_zero_rg00_s, + store_pixel_ccolor_zero_00b0, + store_pixel_ccolor_zero_r0b0_s, + store_pixel_ccolor_zero_0gb0_s, + store_pixel_ccolor_zero_rgb0_s, + store_pixel_ccolor_zero_000a, + store_pixel_ccolor_zero_r00a_s, + store_pixel_ccolor_zero_0g0a_s, + store_pixel_ccolor_zero_rg0a_s, + store_pixel_ccolor_zero_00ba, + store_pixel_ccolor_zero_r0ba_s, + store_pixel_ccolor_zero_0gba_s, + store_pixel_ccolor_zero_rgba_s, + }, + { + store_pixel_ccolor_one_0000, + store_pixel_ccolor_one_r000_s, + store_pixel_ccolor_one_0g00_s, + store_pixel_ccolor_one_rg00_s, + store_pixel_ccolor_one_00b0, + store_pixel_ccolor_one_r0b0_s, + store_pixel_ccolor_one_0gb0_s, + store_pixel_ccolor_one_rgb0_s, + store_pixel_ccolor_one_000a, + store_pixel_ccolor_one_r00a_s, + store_pixel_ccolor_one_0g0a_s, + store_pixel_ccolor_one_rg0a_s, + store_pixel_ccolor_one_00ba, + store_pixel_ccolor_one_r0ba_s, + store_pixel_ccolor_one_0gba_s, + store_pixel_ccolor_one_rgba_s, + }, + { + store_pixel_ccolor_icolor_0000, + store_pixel_ccolor_icolor_r000_s, + store_pixel_ccolor_icolor_0g00_s, + store_pixel_ccolor_icolor_rg00_s, + store_pixel_ccolor_icolor_00b0, + store_pixel_ccolor_icolor_r0b0_s, + store_pixel_ccolor_icolor_0gb0_s, + store_pixel_ccolor_icolor_rgb0_s, + store_pixel_ccolor_icolor_000a, + store_pixel_ccolor_icolor_r00a_s, + store_pixel_ccolor_icolor_0g0a_s, + store_pixel_ccolor_icolor_rg0a_s, + store_pixel_ccolor_icolor_00ba, + store_pixel_ccolor_icolor_r0ba_s, + store_pixel_ccolor_icolor_0gba_s, + store_pixel_ccolor_icolor_rgba_s, + }, + { + store_pixel_ccolor_micolor_0000, + store_pixel_ccolor_micolor_r000_s, + store_pixel_ccolor_micolor_0g00_s, + store_pixel_ccolor_micolor_rg00_s, + store_pixel_ccolor_micolor_00b0, + store_pixel_ccolor_micolor_r0b0_s, + store_pixel_ccolor_micolor_0gb0_s, + store_pixel_ccolor_micolor_rgb0_s, + store_pixel_ccolor_micolor_000a, + store_pixel_ccolor_micolor_r00a_s, + store_pixel_ccolor_micolor_0g0a_s, + store_pixel_ccolor_micolor_rg0a_s, + store_pixel_ccolor_micolor_00ba, + store_pixel_ccolor_micolor_r0ba_s, + store_pixel_ccolor_micolor_0gba_s, + store_pixel_ccolor_micolor_rgba_s, + }, + { + store_pixel_ccolor_fcolor_0000, + store_pixel_ccolor_fcolor_r000_s, + store_pixel_ccolor_fcolor_0g00_s, + store_pixel_ccolor_fcolor_rg00_s, + store_pixel_ccolor_fcolor_00b0, + store_pixel_ccolor_fcolor_r0b0_s, + store_pixel_ccolor_fcolor_0gb0_s, + store_pixel_ccolor_fcolor_rgb0_s, + store_pixel_ccolor_fcolor_000a, + store_pixel_ccolor_fcolor_r00a_s, + store_pixel_ccolor_fcolor_0g0a_s, + store_pixel_ccolor_fcolor_rg0a_s, + store_pixel_ccolor_fcolor_00ba, + store_pixel_ccolor_fcolor_r0ba_s, + store_pixel_ccolor_fcolor_0gba_s, + store_pixel_ccolor_fcolor_rgba_s, + }, + { + store_pixel_ccolor_mfcolor_0000, + store_pixel_ccolor_mfcolor_r000_s, + store_pixel_ccolor_mfcolor_0g00_s, + store_pixel_ccolor_mfcolor_rg00_s, + store_pixel_ccolor_mfcolor_00b0, + store_pixel_ccolor_mfcolor_r0b0_s, + store_pixel_ccolor_mfcolor_0gb0_s, + store_pixel_ccolor_mfcolor_rgb0_s, + store_pixel_ccolor_mfcolor_000a, + store_pixel_ccolor_mfcolor_r00a_s, + store_pixel_ccolor_mfcolor_0g0a_s, + store_pixel_ccolor_mfcolor_rg0a_s, + store_pixel_ccolor_mfcolor_00ba, + store_pixel_ccolor_mfcolor_r0ba_s, + store_pixel_ccolor_mfcolor_0gba_s, + store_pixel_ccolor_mfcolor_rgba_s, + }, + { + store_pixel_ccolor_ialpha_0000, + store_pixel_ccolor_ialpha_r000_s, + store_pixel_ccolor_ialpha_0g00_s, + store_pixel_ccolor_ialpha_rg00_s, + store_pixel_ccolor_ialpha_00b0, + store_pixel_ccolor_ialpha_r0b0_s, + store_pixel_ccolor_ialpha_0gb0_s, + store_pixel_ccolor_ialpha_rgb0_s, + store_pixel_ccolor_ialpha_000a, + store_pixel_ccolor_ialpha_r00a_s, + store_pixel_ccolor_ialpha_0g0a_s, + store_pixel_ccolor_ialpha_rg0a_s, + store_pixel_ccolor_ialpha_00ba, + store_pixel_ccolor_ialpha_r0ba_s, + store_pixel_ccolor_ialpha_0gba_s, + store_pixel_ccolor_ialpha_rgba_s, + }, + { + store_pixel_ccolor_mialpha_0000, + store_pixel_ccolor_mialpha_r000_s, + store_pixel_ccolor_mialpha_0g00_s, + store_pixel_ccolor_mialpha_rg00_s, + store_pixel_ccolor_mialpha_00b0, + store_pixel_ccolor_mialpha_r0b0_s, + store_pixel_ccolor_mialpha_0gb0_s, + store_pixel_ccolor_mialpha_rgb0_s, + store_pixel_ccolor_mialpha_000a, + store_pixel_ccolor_mialpha_r00a_s, + store_pixel_ccolor_mialpha_0g0a_s, + store_pixel_ccolor_mialpha_rg0a_s, + store_pixel_ccolor_mialpha_00ba, + store_pixel_ccolor_mialpha_r0ba_s, + store_pixel_ccolor_mialpha_0gba_s, + store_pixel_ccolor_mialpha_rgba_s, + }, + { + store_pixel_ccolor_falpha_0000, + store_pixel_ccolor_falpha_r000_s, + store_pixel_ccolor_falpha_0g00_s, + store_pixel_ccolor_falpha_rg00_s, + store_pixel_ccolor_falpha_00b0, + store_pixel_ccolor_falpha_r0b0_s, + store_pixel_ccolor_falpha_0gb0_s, + store_pixel_ccolor_falpha_rgb0_s, + store_pixel_ccolor_falpha_000a, + store_pixel_ccolor_falpha_r00a_s, + store_pixel_ccolor_falpha_0g0a_s, + store_pixel_ccolor_falpha_rg0a_s, + store_pixel_ccolor_falpha_00ba, + store_pixel_ccolor_falpha_r0ba_s, + store_pixel_ccolor_falpha_0gba_s, + store_pixel_ccolor_falpha_rgba_s, + }, + { + store_pixel_ccolor_mfalpha_0000, + store_pixel_ccolor_mfalpha_r000_s, + store_pixel_ccolor_mfalpha_0g00_s, + store_pixel_ccolor_mfalpha_rg00_s, + store_pixel_ccolor_mfalpha_00b0, + store_pixel_ccolor_mfalpha_r0b0_s, + store_pixel_ccolor_mfalpha_0gb0_s, + store_pixel_ccolor_mfalpha_rgb0_s, + store_pixel_ccolor_mfalpha_000a, + store_pixel_ccolor_mfalpha_r00a_s, + store_pixel_ccolor_mfalpha_0g0a_s, + store_pixel_ccolor_mfalpha_rg0a_s, + store_pixel_ccolor_mfalpha_00ba, + store_pixel_ccolor_mfalpha_r0ba_s, + store_pixel_ccolor_mfalpha_0gba_s, + store_pixel_ccolor_mfalpha_rgba_s, + }, + { + store_pixel_ccolor_ccolor_0000, + store_pixel_ccolor_ccolor_r000_s, + store_pixel_ccolor_ccolor_0g00_s, + store_pixel_ccolor_ccolor_rg00_s, + store_pixel_ccolor_ccolor_00b0, + store_pixel_ccolor_ccolor_r0b0_s, + store_pixel_ccolor_ccolor_0gb0_s, + store_pixel_ccolor_ccolor_rgb0_s, + store_pixel_ccolor_ccolor_000a, + store_pixel_ccolor_ccolor_r00a_s, + store_pixel_ccolor_ccolor_0g0a_s, + store_pixel_ccolor_ccolor_rg0a_s, + store_pixel_ccolor_ccolor_00ba, + store_pixel_ccolor_ccolor_r0ba_s, + store_pixel_ccolor_ccolor_0gba_s, + store_pixel_ccolor_ccolor_rgba_s, + }, + { + store_pixel_ccolor_mccolor_0000, + store_pixel_ccolor_mccolor_r000_s, + store_pixel_ccolor_mccolor_0g00_s, + store_pixel_ccolor_mccolor_rg00_s, + store_pixel_ccolor_mccolor_00b0, + store_pixel_ccolor_mccolor_r0b0_s, + store_pixel_ccolor_mccolor_0gb0_s, + store_pixel_ccolor_mccolor_rgb0_s, + store_pixel_ccolor_mccolor_000a, + store_pixel_ccolor_mccolor_r00a_s, + store_pixel_ccolor_mccolor_0g0a_s, + store_pixel_ccolor_mccolor_rg0a_s, + store_pixel_ccolor_mccolor_00ba, + store_pixel_ccolor_mccolor_r0ba_s, + store_pixel_ccolor_mccolor_0gba_s, + store_pixel_ccolor_mccolor_rgba_s, + }, + { + store_pixel_ccolor_calpha_0000, + store_pixel_ccolor_calpha_r000_s, + store_pixel_ccolor_calpha_0g00_s, + store_pixel_ccolor_calpha_rg00_s, + store_pixel_ccolor_calpha_00b0, + store_pixel_ccolor_calpha_r0b0_s, + store_pixel_ccolor_calpha_0gb0_s, + store_pixel_ccolor_calpha_rgb0_s, + store_pixel_ccolor_calpha_000a, + store_pixel_ccolor_calpha_r00a_s, + store_pixel_ccolor_calpha_0g0a_s, + store_pixel_ccolor_calpha_rg0a_s, + store_pixel_ccolor_calpha_00ba, + store_pixel_ccolor_calpha_r0ba_s, + store_pixel_ccolor_calpha_0gba_s, + store_pixel_ccolor_calpha_rgba_s, + }, + { + store_pixel_ccolor_mcalpha_0000, + store_pixel_ccolor_mcalpha_r000_s, + store_pixel_ccolor_mcalpha_0g00_s, + store_pixel_ccolor_mcalpha_rg00_s, + store_pixel_ccolor_mcalpha_00b0, + store_pixel_ccolor_mcalpha_r0b0_s, + store_pixel_ccolor_mcalpha_0gb0_s, + store_pixel_ccolor_mcalpha_rgb0_s, + store_pixel_ccolor_mcalpha_000a, + store_pixel_ccolor_mcalpha_r00a_s, + store_pixel_ccolor_mcalpha_0g0a_s, + store_pixel_ccolor_mcalpha_rg0a_s, + store_pixel_ccolor_mcalpha_00ba, + store_pixel_ccolor_mcalpha_r0ba_s, + store_pixel_ccolor_mcalpha_0gba_s, + store_pixel_ccolor_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_mccolor_zero_0000, + store_pixel_mccolor_zero_r000_s, + store_pixel_mccolor_zero_0g00_s, + store_pixel_mccolor_zero_rg00_s, + store_pixel_mccolor_zero_00b0, + store_pixel_mccolor_zero_r0b0_s, + store_pixel_mccolor_zero_0gb0_s, + store_pixel_mccolor_zero_rgb0_s, + store_pixel_mccolor_zero_000a, + store_pixel_mccolor_zero_r00a_s, + store_pixel_mccolor_zero_0g0a_s, + store_pixel_mccolor_zero_rg0a_s, + store_pixel_mccolor_zero_00ba, + store_pixel_mccolor_zero_r0ba_s, + store_pixel_mccolor_zero_0gba_s, + store_pixel_mccolor_zero_rgba_s, + }, + { + store_pixel_mccolor_one_0000, + store_pixel_mccolor_one_r000_s, + store_pixel_mccolor_one_0g00_s, + store_pixel_mccolor_one_rg00_s, + store_pixel_mccolor_one_00b0, + store_pixel_mccolor_one_r0b0_s, + store_pixel_mccolor_one_0gb0_s, + store_pixel_mccolor_one_rgb0_s, + store_pixel_mccolor_one_000a, + store_pixel_mccolor_one_r00a_s, + store_pixel_mccolor_one_0g0a_s, + store_pixel_mccolor_one_rg0a_s, + store_pixel_mccolor_one_00ba, + store_pixel_mccolor_one_r0ba_s, + store_pixel_mccolor_one_0gba_s, + store_pixel_mccolor_one_rgba_s, + }, + { + store_pixel_mccolor_icolor_0000, + store_pixel_mccolor_icolor_r000_s, + store_pixel_mccolor_icolor_0g00_s, + store_pixel_mccolor_icolor_rg00_s, + store_pixel_mccolor_icolor_00b0, + store_pixel_mccolor_icolor_r0b0_s, + store_pixel_mccolor_icolor_0gb0_s, + store_pixel_mccolor_icolor_rgb0_s, + store_pixel_mccolor_icolor_000a, + store_pixel_mccolor_icolor_r00a_s, + store_pixel_mccolor_icolor_0g0a_s, + store_pixel_mccolor_icolor_rg0a_s, + store_pixel_mccolor_icolor_00ba, + store_pixel_mccolor_icolor_r0ba_s, + store_pixel_mccolor_icolor_0gba_s, + store_pixel_mccolor_icolor_rgba_s, + }, + { + store_pixel_mccolor_micolor_0000, + store_pixel_mccolor_micolor_r000_s, + store_pixel_mccolor_micolor_0g00_s, + store_pixel_mccolor_micolor_rg00_s, + store_pixel_mccolor_micolor_00b0, + store_pixel_mccolor_micolor_r0b0_s, + store_pixel_mccolor_micolor_0gb0_s, + store_pixel_mccolor_micolor_rgb0_s, + store_pixel_mccolor_micolor_000a, + store_pixel_mccolor_micolor_r00a_s, + store_pixel_mccolor_micolor_0g0a_s, + store_pixel_mccolor_micolor_rg0a_s, + store_pixel_mccolor_micolor_00ba, + store_pixel_mccolor_micolor_r0ba_s, + store_pixel_mccolor_micolor_0gba_s, + store_pixel_mccolor_micolor_rgba_s, + }, + { + store_pixel_mccolor_fcolor_0000, + store_pixel_mccolor_fcolor_r000_s, + store_pixel_mccolor_fcolor_0g00_s, + store_pixel_mccolor_fcolor_rg00_s, + store_pixel_mccolor_fcolor_00b0, + store_pixel_mccolor_fcolor_r0b0_s, + store_pixel_mccolor_fcolor_0gb0_s, + store_pixel_mccolor_fcolor_rgb0_s, + store_pixel_mccolor_fcolor_000a, + store_pixel_mccolor_fcolor_r00a_s, + store_pixel_mccolor_fcolor_0g0a_s, + store_pixel_mccolor_fcolor_rg0a_s, + store_pixel_mccolor_fcolor_00ba, + store_pixel_mccolor_fcolor_r0ba_s, + store_pixel_mccolor_fcolor_0gba_s, + store_pixel_mccolor_fcolor_rgba_s, + }, + { + store_pixel_mccolor_mfcolor_0000, + store_pixel_mccolor_mfcolor_r000_s, + store_pixel_mccolor_mfcolor_0g00_s, + store_pixel_mccolor_mfcolor_rg00_s, + store_pixel_mccolor_mfcolor_00b0, + store_pixel_mccolor_mfcolor_r0b0_s, + store_pixel_mccolor_mfcolor_0gb0_s, + store_pixel_mccolor_mfcolor_rgb0_s, + store_pixel_mccolor_mfcolor_000a, + store_pixel_mccolor_mfcolor_r00a_s, + store_pixel_mccolor_mfcolor_0g0a_s, + store_pixel_mccolor_mfcolor_rg0a_s, + store_pixel_mccolor_mfcolor_00ba, + store_pixel_mccolor_mfcolor_r0ba_s, + store_pixel_mccolor_mfcolor_0gba_s, + store_pixel_mccolor_mfcolor_rgba_s, + }, + { + store_pixel_mccolor_ialpha_0000, + store_pixel_mccolor_ialpha_r000_s, + store_pixel_mccolor_ialpha_0g00_s, + store_pixel_mccolor_ialpha_rg00_s, + store_pixel_mccolor_ialpha_00b0, + store_pixel_mccolor_ialpha_r0b0_s, + store_pixel_mccolor_ialpha_0gb0_s, + store_pixel_mccolor_ialpha_rgb0_s, + store_pixel_mccolor_ialpha_000a, + store_pixel_mccolor_ialpha_r00a_s, + store_pixel_mccolor_ialpha_0g0a_s, + store_pixel_mccolor_ialpha_rg0a_s, + store_pixel_mccolor_ialpha_00ba, + store_pixel_mccolor_ialpha_r0ba_s, + store_pixel_mccolor_ialpha_0gba_s, + store_pixel_mccolor_ialpha_rgba_s, + }, + { + store_pixel_mccolor_mialpha_0000, + store_pixel_mccolor_mialpha_r000_s, + store_pixel_mccolor_mialpha_0g00_s, + store_pixel_mccolor_mialpha_rg00_s, + store_pixel_mccolor_mialpha_00b0, + store_pixel_mccolor_mialpha_r0b0_s, + store_pixel_mccolor_mialpha_0gb0_s, + store_pixel_mccolor_mialpha_rgb0_s, + store_pixel_mccolor_mialpha_000a, + store_pixel_mccolor_mialpha_r00a_s, + store_pixel_mccolor_mialpha_0g0a_s, + store_pixel_mccolor_mialpha_rg0a_s, + store_pixel_mccolor_mialpha_00ba, + store_pixel_mccolor_mialpha_r0ba_s, + store_pixel_mccolor_mialpha_0gba_s, + store_pixel_mccolor_mialpha_rgba_s, + }, + { + store_pixel_mccolor_falpha_0000, + store_pixel_mccolor_falpha_r000_s, + store_pixel_mccolor_falpha_0g00_s, + store_pixel_mccolor_falpha_rg00_s, + store_pixel_mccolor_falpha_00b0, + store_pixel_mccolor_falpha_r0b0_s, + store_pixel_mccolor_falpha_0gb0_s, + store_pixel_mccolor_falpha_rgb0_s, + store_pixel_mccolor_falpha_000a, + store_pixel_mccolor_falpha_r00a_s, + store_pixel_mccolor_falpha_0g0a_s, + store_pixel_mccolor_falpha_rg0a_s, + store_pixel_mccolor_falpha_00ba, + store_pixel_mccolor_falpha_r0ba_s, + store_pixel_mccolor_falpha_0gba_s, + store_pixel_mccolor_falpha_rgba_s, + }, + { + store_pixel_mccolor_mfalpha_0000, + store_pixel_mccolor_mfalpha_r000_s, + store_pixel_mccolor_mfalpha_0g00_s, + store_pixel_mccolor_mfalpha_rg00_s, + store_pixel_mccolor_mfalpha_00b0, + store_pixel_mccolor_mfalpha_r0b0_s, + store_pixel_mccolor_mfalpha_0gb0_s, + store_pixel_mccolor_mfalpha_rgb0_s, + store_pixel_mccolor_mfalpha_000a, + store_pixel_mccolor_mfalpha_r00a_s, + store_pixel_mccolor_mfalpha_0g0a_s, + store_pixel_mccolor_mfalpha_rg0a_s, + store_pixel_mccolor_mfalpha_00ba, + store_pixel_mccolor_mfalpha_r0ba_s, + store_pixel_mccolor_mfalpha_0gba_s, + store_pixel_mccolor_mfalpha_rgba_s, + }, + { + store_pixel_mccolor_ccolor_0000, + store_pixel_mccolor_ccolor_r000_s, + store_pixel_mccolor_ccolor_0g00_s, + store_pixel_mccolor_ccolor_rg00_s, + store_pixel_mccolor_ccolor_00b0, + store_pixel_mccolor_ccolor_r0b0_s, + store_pixel_mccolor_ccolor_0gb0_s, + store_pixel_mccolor_ccolor_rgb0_s, + store_pixel_mccolor_ccolor_000a, + store_pixel_mccolor_ccolor_r00a_s, + store_pixel_mccolor_ccolor_0g0a_s, + store_pixel_mccolor_ccolor_rg0a_s, + store_pixel_mccolor_ccolor_00ba, + store_pixel_mccolor_ccolor_r0ba_s, + store_pixel_mccolor_ccolor_0gba_s, + store_pixel_mccolor_ccolor_rgba_s, + }, + { + store_pixel_mccolor_mccolor_0000, + store_pixel_mccolor_mccolor_r000_s, + store_pixel_mccolor_mccolor_0g00_s, + store_pixel_mccolor_mccolor_rg00_s, + store_pixel_mccolor_mccolor_00b0, + store_pixel_mccolor_mccolor_r0b0_s, + store_pixel_mccolor_mccolor_0gb0_s, + store_pixel_mccolor_mccolor_rgb0_s, + store_pixel_mccolor_mccolor_000a, + store_pixel_mccolor_mccolor_r00a_s, + store_pixel_mccolor_mccolor_0g0a_s, + store_pixel_mccolor_mccolor_rg0a_s, + store_pixel_mccolor_mccolor_00ba, + store_pixel_mccolor_mccolor_r0ba_s, + store_pixel_mccolor_mccolor_0gba_s, + store_pixel_mccolor_mccolor_rgba_s, + }, + { + store_pixel_mccolor_calpha_0000, + store_pixel_mccolor_calpha_r000_s, + store_pixel_mccolor_calpha_0g00_s, + store_pixel_mccolor_calpha_rg00_s, + store_pixel_mccolor_calpha_00b0, + store_pixel_mccolor_calpha_r0b0_s, + store_pixel_mccolor_calpha_0gb0_s, + store_pixel_mccolor_calpha_rgb0_s, + store_pixel_mccolor_calpha_000a, + store_pixel_mccolor_calpha_r00a_s, + store_pixel_mccolor_calpha_0g0a_s, + store_pixel_mccolor_calpha_rg0a_s, + store_pixel_mccolor_calpha_00ba, + store_pixel_mccolor_calpha_r0ba_s, + store_pixel_mccolor_calpha_0gba_s, + store_pixel_mccolor_calpha_rgba_s, + }, + { + store_pixel_mccolor_mcalpha_0000, + store_pixel_mccolor_mcalpha_r000_s, + store_pixel_mccolor_mcalpha_0g00_s, + store_pixel_mccolor_mcalpha_rg00_s, + store_pixel_mccolor_mcalpha_00b0, + store_pixel_mccolor_mcalpha_r0b0_s, + store_pixel_mccolor_mcalpha_0gb0_s, + store_pixel_mccolor_mcalpha_rgb0_s, + store_pixel_mccolor_mcalpha_000a, + store_pixel_mccolor_mcalpha_r00a_s, + store_pixel_mccolor_mcalpha_0g0a_s, + store_pixel_mccolor_mcalpha_rg0a_s, + store_pixel_mccolor_mcalpha_00ba, + store_pixel_mccolor_mcalpha_r0ba_s, + store_pixel_mccolor_mcalpha_0gba_s, + store_pixel_mccolor_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_calpha_zero_0000, + store_pixel_calpha_zero_r000_s, + store_pixel_calpha_zero_0g00_s, + store_pixel_calpha_zero_rg00_s, + store_pixel_calpha_zero_00b0, + store_pixel_calpha_zero_r0b0_s, + store_pixel_calpha_zero_0gb0_s, + store_pixel_calpha_zero_rgb0_s, + store_pixel_calpha_zero_000a, + store_pixel_calpha_zero_r00a_s, + store_pixel_calpha_zero_0g0a_s, + store_pixel_calpha_zero_rg0a_s, + store_pixel_calpha_zero_00ba, + store_pixel_calpha_zero_r0ba_s, + store_pixel_calpha_zero_0gba_s, + store_pixel_calpha_zero_rgba_s, + }, + { + store_pixel_calpha_one_0000, + store_pixel_calpha_one_r000_s, + store_pixel_calpha_one_0g00_s, + store_pixel_calpha_one_rg00_s, + store_pixel_calpha_one_00b0, + store_pixel_calpha_one_r0b0_s, + store_pixel_calpha_one_0gb0_s, + store_pixel_calpha_one_rgb0_s, + store_pixel_calpha_one_000a, + store_pixel_calpha_one_r00a_s, + store_pixel_calpha_one_0g0a_s, + store_pixel_calpha_one_rg0a_s, + store_pixel_calpha_one_00ba, + store_pixel_calpha_one_r0ba_s, + store_pixel_calpha_one_0gba_s, + store_pixel_calpha_one_rgba_s, + }, + { + store_pixel_calpha_icolor_0000, + store_pixel_calpha_icolor_r000_s, + store_pixel_calpha_icolor_0g00_s, + store_pixel_calpha_icolor_rg00_s, + store_pixel_calpha_icolor_00b0, + store_pixel_calpha_icolor_r0b0_s, + store_pixel_calpha_icolor_0gb0_s, + store_pixel_calpha_icolor_rgb0_s, + store_pixel_calpha_icolor_000a, + store_pixel_calpha_icolor_r00a_s, + store_pixel_calpha_icolor_0g0a_s, + store_pixel_calpha_icolor_rg0a_s, + store_pixel_calpha_icolor_00ba, + store_pixel_calpha_icolor_r0ba_s, + store_pixel_calpha_icolor_0gba_s, + store_pixel_calpha_icolor_rgba_s, + }, + { + store_pixel_calpha_micolor_0000, + store_pixel_calpha_micolor_r000_s, + store_pixel_calpha_micolor_0g00_s, + store_pixel_calpha_micolor_rg00_s, + store_pixel_calpha_micolor_00b0, + store_pixel_calpha_micolor_r0b0_s, + store_pixel_calpha_micolor_0gb0_s, + store_pixel_calpha_micolor_rgb0_s, + store_pixel_calpha_micolor_000a, + store_pixel_calpha_micolor_r00a_s, + store_pixel_calpha_micolor_0g0a_s, + store_pixel_calpha_micolor_rg0a_s, + store_pixel_calpha_micolor_00ba, + store_pixel_calpha_micolor_r0ba_s, + store_pixel_calpha_micolor_0gba_s, + store_pixel_calpha_micolor_rgba_s, + }, + { + store_pixel_calpha_fcolor_0000, + store_pixel_calpha_fcolor_r000_s, + store_pixel_calpha_fcolor_0g00_s, + store_pixel_calpha_fcolor_rg00_s, + store_pixel_calpha_fcolor_00b0, + store_pixel_calpha_fcolor_r0b0_s, + store_pixel_calpha_fcolor_0gb0_s, + store_pixel_calpha_fcolor_rgb0_s, + store_pixel_calpha_fcolor_000a, + store_pixel_calpha_fcolor_r00a_s, + store_pixel_calpha_fcolor_0g0a_s, + store_pixel_calpha_fcolor_rg0a_s, + store_pixel_calpha_fcolor_00ba, + store_pixel_calpha_fcolor_r0ba_s, + store_pixel_calpha_fcolor_0gba_s, + store_pixel_calpha_fcolor_rgba_s, + }, + { + store_pixel_calpha_mfcolor_0000, + store_pixel_calpha_mfcolor_r000_s, + store_pixel_calpha_mfcolor_0g00_s, + store_pixel_calpha_mfcolor_rg00_s, + store_pixel_calpha_mfcolor_00b0, + store_pixel_calpha_mfcolor_r0b0_s, + store_pixel_calpha_mfcolor_0gb0_s, + store_pixel_calpha_mfcolor_rgb0_s, + store_pixel_calpha_mfcolor_000a, + store_pixel_calpha_mfcolor_r00a_s, + store_pixel_calpha_mfcolor_0g0a_s, + store_pixel_calpha_mfcolor_rg0a_s, + store_pixel_calpha_mfcolor_00ba, + store_pixel_calpha_mfcolor_r0ba_s, + store_pixel_calpha_mfcolor_0gba_s, + store_pixel_calpha_mfcolor_rgba_s, + }, + { + store_pixel_calpha_ialpha_0000, + store_pixel_calpha_ialpha_r000_s, + store_pixel_calpha_ialpha_0g00_s, + store_pixel_calpha_ialpha_rg00_s, + store_pixel_calpha_ialpha_00b0, + store_pixel_calpha_ialpha_r0b0_s, + store_pixel_calpha_ialpha_0gb0_s, + store_pixel_calpha_ialpha_rgb0_s, + store_pixel_calpha_ialpha_000a, + store_pixel_calpha_ialpha_r00a_s, + store_pixel_calpha_ialpha_0g0a_s, + store_pixel_calpha_ialpha_rg0a_s, + store_pixel_calpha_ialpha_00ba, + store_pixel_calpha_ialpha_r0ba_s, + store_pixel_calpha_ialpha_0gba_s, + store_pixel_calpha_ialpha_rgba_s, + }, + { + store_pixel_calpha_mialpha_0000, + store_pixel_calpha_mialpha_r000_s, + store_pixel_calpha_mialpha_0g00_s, + store_pixel_calpha_mialpha_rg00_s, + store_pixel_calpha_mialpha_00b0, + store_pixel_calpha_mialpha_r0b0_s, + store_pixel_calpha_mialpha_0gb0_s, + store_pixel_calpha_mialpha_rgb0_s, + store_pixel_calpha_mialpha_000a, + store_pixel_calpha_mialpha_r00a_s, + store_pixel_calpha_mialpha_0g0a_s, + store_pixel_calpha_mialpha_rg0a_s, + store_pixel_calpha_mialpha_00ba, + store_pixel_calpha_mialpha_r0ba_s, + store_pixel_calpha_mialpha_0gba_s, + store_pixel_calpha_mialpha_rgba_s, + }, + { + store_pixel_calpha_falpha_0000, + store_pixel_calpha_falpha_r000_s, + store_pixel_calpha_falpha_0g00_s, + store_pixel_calpha_falpha_rg00_s, + store_pixel_calpha_falpha_00b0, + store_pixel_calpha_falpha_r0b0_s, + store_pixel_calpha_falpha_0gb0_s, + store_pixel_calpha_falpha_rgb0_s, + store_pixel_calpha_falpha_000a, + store_pixel_calpha_falpha_r00a_s, + store_pixel_calpha_falpha_0g0a_s, + store_pixel_calpha_falpha_rg0a_s, + store_pixel_calpha_falpha_00ba, + store_pixel_calpha_falpha_r0ba_s, + store_pixel_calpha_falpha_0gba_s, + store_pixel_calpha_falpha_rgba_s, + }, + { + store_pixel_calpha_mfalpha_0000, + store_pixel_calpha_mfalpha_r000_s, + store_pixel_calpha_mfalpha_0g00_s, + store_pixel_calpha_mfalpha_rg00_s, + store_pixel_calpha_mfalpha_00b0, + store_pixel_calpha_mfalpha_r0b0_s, + store_pixel_calpha_mfalpha_0gb0_s, + store_pixel_calpha_mfalpha_rgb0_s, + store_pixel_calpha_mfalpha_000a, + store_pixel_calpha_mfalpha_r00a_s, + store_pixel_calpha_mfalpha_0g0a_s, + store_pixel_calpha_mfalpha_rg0a_s, + store_pixel_calpha_mfalpha_00ba, + store_pixel_calpha_mfalpha_r0ba_s, + store_pixel_calpha_mfalpha_0gba_s, + store_pixel_calpha_mfalpha_rgba_s, + }, + { + store_pixel_calpha_ccolor_0000, + store_pixel_calpha_ccolor_r000_s, + store_pixel_calpha_ccolor_0g00_s, + store_pixel_calpha_ccolor_rg00_s, + store_pixel_calpha_ccolor_00b0, + store_pixel_calpha_ccolor_r0b0_s, + store_pixel_calpha_ccolor_0gb0_s, + store_pixel_calpha_ccolor_rgb0_s, + store_pixel_calpha_ccolor_000a, + store_pixel_calpha_ccolor_r00a_s, + store_pixel_calpha_ccolor_0g0a_s, + store_pixel_calpha_ccolor_rg0a_s, + store_pixel_calpha_ccolor_00ba, + store_pixel_calpha_ccolor_r0ba_s, + store_pixel_calpha_ccolor_0gba_s, + store_pixel_calpha_ccolor_rgba_s, + }, + { + store_pixel_calpha_mccolor_0000, + store_pixel_calpha_mccolor_r000_s, + store_pixel_calpha_mccolor_0g00_s, + store_pixel_calpha_mccolor_rg00_s, + store_pixel_calpha_mccolor_00b0, + store_pixel_calpha_mccolor_r0b0_s, + store_pixel_calpha_mccolor_0gb0_s, + store_pixel_calpha_mccolor_rgb0_s, + store_pixel_calpha_mccolor_000a, + store_pixel_calpha_mccolor_r00a_s, + store_pixel_calpha_mccolor_0g0a_s, + store_pixel_calpha_mccolor_rg0a_s, + store_pixel_calpha_mccolor_00ba, + store_pixel_calpha_mccolor_r0ba_s, + store_pixel_calpha_mccolor_0gba_s, + store_pixel_calpha_mccolor_rgba_s, + }, + { + store_pixel_calpha_calpha_0000, + store_pixel_calpha_calpha_r000_s, + store_pixel_calpha_calpha_0g00_s, + store_pixel_calpha_calpha_rg00_s, + store_pixel_calpha_calpha_00b0, + store_pixel_calpha_calpha_r0b0_s, + store_pixel_calpha_calpha_0gb0_s, + store_pixel_calpha_calpha_rgb0_s, + store_pixel_calpha_calpha_000a, + store_pixel_calpha_calpha_r00a_s, + store_pixel_calpha_calpha_0g0a_s, + store_pixel_calpha_calpha_rg0a_s, + store_pixel_calpha_calpha_00ba, + store_pixel_calpha_calpha_r0ba_s, + store_pixel_calpha_calpha_0gba_s, + store_pixel_calpha_calpha_rgba_s, + }, + { + store_pixel_calpha_mcalpha_0000, + store_pixel_calpha_mcalpha_r000_s, + store_pixel_calpha_mcalpha_0g00_s, + store_pixel_calpha_mcalpha_rg00_s, + store_pixel_calpha_mcalpha_00b0, + store_pixel_calpha_mcalpha_r0b0_s, + store_pixel_calpha_mcalpha_0gb0_s, + store_pixel_calpha_mcalpha_rgb0_s, + store_pixel_calpha_mcalpha_000a, + store_pixel_calpha_mcalpha_r00a_s, + store_pixel_calpha_mcalpha_0g0a_s, + store_pixel_calpha_mcalpha_rg0a_s, + store_pixel_calpha_mcalpha_00ba, + store_pixel_calpha_mcalpha_r0ba_s, + store_pixel_calpha_mcalpha_0gba_s, + store_pixel_calpha_mcalpha_rgba_s, + }, + }, + { + { + store_pixel_mcalpha_zero_0000, + store_pixel_mcalpha_zero_r000_s, + store_pixel_mcalpha_zero_0g00_s, + store_pixel_mcalpha_zero_rg00_s, + store_pixel_mcalpha_zero_00b0, + store_pixel_mcalpha_zero_r0b0_s, + store_pixel_mcalpha_zero_0gb0_s, + store_pixel_mcalpha_zero_rgb0_s, + store_pixel_mcalpha_zero_000a, + store_pixel_mcalpha_zero_r00a_s, + store_pixel_mcalpha_zero_0g0a_s, + store_pixel_mcalpha_zero_rg0a_s, + store_pixel_mcalpha_zero_00ba, + store_pixel_mcalpha_zero_r0ba_s, + store_pixel_mcalpha_zero_0gba_s, + store_pixel_mcalpha_zero_rgba_s, + }, + { + store_pixel_mcalpha_one_0000, + store_pixel_mcalpha_one_r000_s, + store_pixel_mcalpha_one_0g00_s, + store_pixel_mcalpha_one_rg00_s, + store_pixel_mcalpha_one_00b0, + store_pixel_mcalpha_one_r0b0_s, + store_pixel_mcalpha_one_0gb0_s, + store_pixel_mcalpha_one_rgb0_s, + store_pixel_mcalpha_one_000a, + store_pixel_mcalpha_one_r00a_s, + store_pixel_mcalpha_one_0g0a_s, + store_pixel_mcalpha_one_rg0a_s, + store_pixel_mcalpha_one_00ba, + store_pixel_mcalpha_one_r0ba_s, + store_pixel_mcalpha_one_0gba_s, + store_pixel_mcalpha_one_rgba_s, + }, + { + store_pixel_mcalpha_icolor_0000, + store_pixel_mcalpha_icolor_r000_s, + store_pixel_mcalpha_icolor_0g00_s, + store_pixel_mcalpha_icolor_rg00_s, + store_pixel_mcalpha_icolor_00b0, + store_pixel_mcalpha_icolor_r0b0_s, + store_pixel_mcalpha_icolor_0gb0_s, + store_pixel_mcalpha_icolor_rgb0_s, + store_pixel_mcalpha_icolor_000a, + store_pixel_mcalpha_icolor_r00a_s, + store_pixel_mcalpha_icolor_0g0a_s, + store_pixel_mcalpha_icolor_rg0a_s, + store_pixel_mcalpha_icolor_00ba, + store_pixel_mcalpha_icolor_r0ba_s, + store_pixel_mcalpha_icolor_0gba_s, + store_pixel_mcalpha_icolor_rgba_s, + }, + { + store_pixel_mcalpha_micolor_0000, + store_pixel_mcalpha_micolor_r000_s, + store_pixel_mcalpha_micolor_0g00_s, + store_pixel_mcalpha_micolor_rg00_s, + store_pixel_mcalpha_micolor_00b0, + store_pixel_mcalpha_micolor_r0b0_s, + store_pixel_mcalpha_micolor_0gb0_s, + store_pixel_mcalpha_micolor_rgb0_s, + store_pixel_mcalpha_micolor_000a, + store_pixel_mcalpha_micolor_r00a_s, + store_pixel_mcalpha_micolor_0g0a_s, + store_pixel_mcalpha_micolor_rg0a_s, + store_pixel_mcalpha_micolor_00ba, + store_pixel_mcalpha_micolor_r0ba_s, + store_pixel_mcalpha_micolor_0gba_s, + store_pixel_mcalpha_micolor_rgba_s, + }, + { + store_pixel_mcalpha_fcolor_0000, + store_pixel_mcalpha_fcolor_r000_s, + store_pixel_mcalpha_fcolor_0g00_s, + store_pixel_mcalpha_fcolor_rg00_s, + store_pixel_mcalpha_fcolor_00b0, + store_pixel_mcalpha_fcolor_r0b0_s, + store_pixel_mcalpha_fcolor_0gb0_s, + store_pixel_mcalpha_fcolor_rgb0_s, + store_pixel_mcalpha_fcolor_000a, + store_pixel_mcalpha_fcolor_r00a_s, + store_pixel_mcalpha_fcolor_0g0a_s, + store_pixel_mcalpha_fcolor_rg0a_s, + store_pixel_mcalpha_fcolor_00ba, + store_pixel_mcalpha_fcolor_r0ba_s, + store_pixel_mcalpha_fcolor_0gba_s, + store_pixel_mcalpha_fcolor_rgba_s, + }, + { + store_pixel_mcalpha_mfcolor_0000, + store_pixel_mcalpha_mfcolor_r000_s, + store_pixel_mcalpha_mfcolor_0g00_s, + store_pixel_mcalpha_mfcolor_rg00_s, + store_pixel_mcalpha_mfcolor_00b0, + store_pixel_mcalpha_mfcolor_r0b0_s, + store_pixel_mcalpha_mfcolor_0gb0_s, + store_pixel_mcalpha_mfcolor_rgb0_s, + store_pixel_mcalpha_mfcolor_000a, + store_pixel_mcalpha_mfcolor_r00a_s, + store_pixel_mcalpha_mfcolor_0g0a_s, + store_pixel_mcalpha_mfcolor_rg0a_s, + store_pixel_mcalpha_mfcolor_00ba, + store_pixel_mcalpha_mfcolor_r0ba_s, + store_pixel_mcalpha_mfcolor_0gba_s, + store_pixel_mcalpha_mfcolor_rgba_s, + }, + { + store_pixel_mcalpha_ialpha_0000, + store_pixel_mcalpha_ialpha_r000_s, + store_pixel_mcalpha_ialpha_0g00_s, + store_pixel_mcalpha_ialpha_rg00_s, + store_pixel_mcalpha_ialpha_00b0, + store_pixel_mcalpha_ialpha_r0b0_s, + store_pixel_mcalpha_ialpha_0gb0_s, + store_pixel_mcalpha_ialpha_rgb0_s, + store_pixel_mcalpha_ialpha_000a, + store_pixel_mcalpha_ialpha_r00a_s, + store_pixel_mcalpha_ialpha_0g0a_s, + store_pixel_mcalpha_ialpha_rg0a_s, + store_pixel_mcalpha_ialpha_00ba, + store_pixel_mcalpha_ialpha_r0ba_s, + store_pixel_mcalpha_ialpha_0gba_s, + store_pixel_mcalpha_ialpha_rgba_s, + }, + { + store_pixel_mcalpha_mialpha_0000, + store_pixel_mcalpha_mialpha_r000_s, + store_pixel_mcalpha_mialpha_0g00_s, + store_pixel_mcalpha_mialpha_rg00_s, + store_pixel_mcalpha_mialpha_00b0, + store_pixel_mcalpha_mialpha_r0b0_s, + store_pixel_mcalpha_mialpha_0gb0_s, + store_pixel_mcalpha_mialpha_rgb0_s, + store_pixel_mcalpha_mialpha_000a, + store_pixel_mcalpha_mialpha_r00a_s, + store_pixel_mcalpha_mialpha_0g0a_s, + store_pixel_mcalpha_mialpha_rg0a_s, + store_pixel_mcalpha_mialpha_00ba, + store_pixel_mcalpha_mialpha_r0ba_s, + store_pixel_mcalpha_mialpha_0gba_s, + store_pixel_mcalpha_mialpha_rgba_s, + }, + { + store_pixel_mcalpha_falpha_0000, + store_pixel_mcalpha_falpha_r000_s, + store_pixel_mcalpha_falpha_0g00_s, + store_pixel_mcalpha_falpha_rg00_s, + store_pixel_mcalpha_falpha_00b0, + store_pixel_mcalpha_falpha_r0b0_s, + store_pixel_mcalpha_falpha_0gb0_s, + store_pixel_mcalpha_falpha_rgb0_s, + store_pixel_mcalpha_falpha_000a, + store_pixel_mcalpha_falpha_r00a_s, + store_pixel_mcalpha_falpha_0g0a_s, + store_pixel_mcalpha_falpha_rg0a_s, + store_pixel_mcalpha_falpha_00ba, + store_pixel_mcalpha_falpha_r0ba_s, + store_pixel_mcalpha_falpha_0gba_s, + store_pixel_mcalpha_falpha_rgba_s, + }, + { + store_pixel_mcalpha_mfalpha_0000, + store_pixel_mcalpha_mfalpha_r000_s, + store_pixel_mcalpha_mfalpha_0g00_s, + store_pixel_mcalpha_mfalpha_rg00_s, + store_pixel_mcalpha_mfalpha_00b0, + store_pixel_mcalpha_mfalpha_r0b0_s, + store_pixel_mcalpha_mfalpha_0gb0_s, + store_pixel_mcalpha_mfalpha_rgb0_s, + store_pixel_mcalpha_mfalpha_000a, + store_pixel_mcalpha_mfalpha_r00a_s, + store_pixel_mcalpha_mfalpha_0g0a_s, + store_pixel_mcalpha_mfalpha_rg0a_s, + store_pixel_mcalpha_mfalpha_00ba, + store_pixel_mcalpha_mfalpha_r0ba_s, + store_pixel_mcalpha_mfalpha_0gba_s, + store_pixel_mcalpha_mfalpha_rgba_s, + }, + { + store_pixel_mcalpha_ccolor_0000, + store_pixel_mcalpha_ccolor_r000_s, + store_pixel_mcalpha_ccolor_0g00_s, + store_pixel_mcalpha_ccolor_rg00_s, + store_pixel_mcalpha_ccolor_00b0, + store_pixel_mcalpha_ccolor_r0b0_s, + store_pixel_mcalpha_ccolor_0gb0_s, + store_pixel_mcalpha_ccolor_rgb0_s, + store_pixel_mcalpha_ccolor_000a, + store_pixel_mcalpha_ccolor_r00a_s, + store_pixel_mcalpha_ccolor_0g0a_s, + store_pixel_mcalpha_ccolor_rg0a_s, + store_pixel_mcalpha_ccolor_00ba, + store_pixel_mcalpha_ccolor_r0ba_s, + store_pixel_mcalpha_ccolor_0gba_s, + store_pixel_mcalpha_ccolor_rgba_s, + }, + { + store_pixel_mcalpha_mccolor_0000, + store_pixel_mcalpha_mccolor_r000_s, + store_pixel_mcalpha_mccolor_0g00_s, + store_pixel_mcalpha_mccolor_rg00_s, + store_pixel_mcalpha_mccolor_00b0, + store_pixel_mcalpha_mccolor_r0b0_s, + store_pixel_mcalpha_mccolor_0gb0_s, + store_pixel_mcalpha_mccolor_rgb0_s, + store_pixel_mcalpha_mccolor_000a, + store_pixel_mcalpha_mccolor_r00a_s, + store_pixel_mcalpha_mccolor_0g0a_s, + store_pixel_mcalpha_mccolor_rg0a_s, + store_pixel_mcalpha_mccolor_00ba, + store_pixel_mcalpha_mccolor_r0ba_s, + store_pixel_mcalpha_mccolor_0gba_s, + store_pixel_mcalpha_mccolor_rgba_s, + }, + { + store_pixel_mcalpha_calpha_0000, + store_pixel_mcalpha_calpha_r000_s, + store_pixel_mcalpha_calpha_0g00_s, + store_pixel_mcalpha_calpha_rg00_s, + store_pixel_mcalpha_calpha_00b0, + store_pixel_mcalpha_calpha_r0b0_s, + store_pixel_mcalpha_calpha_0gb0_s, + store_pixel_mcalpha_calpha_rgb0_s, + store_pixel_mcalpha_calpha_000a, + store_pixel_mcalpha_calpha_r00a_s, + store_pixel_mcalpha_calpha_0g0a_s, + store_pixel_mcalpha_calpha_rg0a_s, + store_pixel_mcalpha_calpha_00ba, + store_pixel_mcalpha_calpha_r0ba_s, + store_pixel_mcalpha_calpha_0gba_s, + store_pixel_mcalpha_calpha_rgba_s, + }, + { + store_pixel_mcalpha_mcalpha_0000, + store_pixel_mcalpha_mcalpha_r000_s, + store_pixel_mcalpha_mcalpha_0g00_s, + store_pixel_mcalpha_mcalpha_rg00_s, + store_pixel_mcalpha_mcalpha_00b0, + store_pixel_mcalpha_mcalpha_r0b0_s, + store_pixel_mcalpha_mcalpha_0gb0_s, + store_pixel_mcalpha_mcalpha_rgb0_s, + store_pixel_mcalpha_mcalpha_000a, + store_pixel_mcalpha_mcalpha_r00a_s, + store_pixel_mcalpha_mcalpha_0g0a_s, + store_pixel_mcalpha_mcalpha_rg0a_s, + store_pixel_mcalpha_mcalpha_00ba, + store_pixel_mcalpha_mcalpha_r0ba_s, + store_pixel_mcalpha_mcalpha_0gba_s, + store_pixel_mcalpha_mcalpha_rgba_s, + }, + }, +}; diff --git a/panda/src/tinydisplay/store_pixel_table.h b/panda/src/tinydisplay/store_pixel_table.h index 6b92256b49..0236ec7fe7 100644 --- a/panda/src/tinydisplay/store_pixel_table.h +++ b/panda/src/tinydisplay/store_pixel_table.h @@ -1,3 +1,4 @@ /* This file is generated code--do not edit. See store_pixel.py. */ extern const ZB_storePixelFunc store_pixel_funcs[14][14][16]; +extern const ZB_storePixelFunc store_pixel_funcs_sRGB[14][14][16]; diff --git a/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx b/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx index b607cfe236..66bc89cfab 100644 --- a/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx +++ b/panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx @@ -226,31 +226,35 @@ clear(DrawableRegion *clearable) { (!clearable->get_clear_stencil_active())) { return; } - + set_state_and_transform(RenderState::make_empty(), _internal_transform); bool clear_color = false; - int r, g, b, a; + PIXEL color = 0; if (clearable->get_clear_color_active()) { LColor v = clearable->get_clear_color(); - r = (int)(v[0] * 0xffff); - g = (int)(v[1] * 0xffff); - b = (int)(v[2] * 0xffff); - a = (int)(v[3] * 0xffff); + + if (_current_properties->get_srgb_color()) { + color = SRGBA_TO_PIXEL( + (v[0] * 0xffff), (v[1] * 0xffff), + (v[2] * 0xffff), (v[3] * 0xffff)); + } else { + color = RGBA_TO_PIXEL( + (v[0] * 0xffff), (v[1] * 0xffff), + (v[2] * 0xffff), (v[3] * 0xffff)); + } clear_color = true; } - + bool clear_z = false; - int z; + int z = 0; if (clearable->get_clear_depth_active()) { // We ignore the specified depth clear value, since we don't // support alternate depth compare functions anyway. - z = 0; clear_z = true; } - ZB_clear_viewport(_c->zb, clear_z, z, - clear_color, r, g, b, a, + ZB_clear_viewport(_c->zb, clear_z, z, clear_color, color, _c->viewport.xmin, _c->viewport.ymin, _c->viewport.xsize, _c->viewport.ysize); } @@ -280,7 +284,7 @@ prepare_display_region(DisplayRegionPipelineReader *dr) { if (_aux_frame_buffer == (ZBuffer *)NULL) { _aux_frame_buffer = ZB_open(xsize, ysize, ZB_MODE_RGBA, 0, 0, 0, 0); } else if (_aux_frame_buffer->xsize < xsize || _aux_frame_buffer->ysize < ysize) { - ZB_resize(_aux_frame_buffer, NULL, + ZB_resize(_aux_frame_buffer, NULL, max(_aux_frame_buffer->xsize, xsize), max(_aux_frame_buffer->ysize, ysize)); } @@ -297,7 +301,7 @@ prepare_display_region(DisplayRegionPipelineReader *dr) { _c->viewport.ysize = ysize; set_scissor(0.0f, 1.0f, 0.0f, 1.0f); - nassertv(xmin >= 0 && xmin < _c->zb->xsize && + nassertv(xmin >= 0 && xmin < _c->zb->xsize && ymin >= 0 && ymin < _c->zb->ysize && xmin + xsize >= 0 && xmin + xsize <= _c->zb->xsize && ymin + ysize >= 0 && ymin + ysize <= _c->zb->ysize); @@ -736,7 +740,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, for (i = 0; i < num_used_vertices; ++i) { GLVertex *v = &_vertices[i]; const LVecBase4 &d = rvertex.get_data4(); - + v->coord.v[0] = d[0]; v->coord.v[1] = d[1]; v->coord.v[2] = d[2]; @@ -755,7 +759,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, _c->current_color.v[1] = d[1] * s[1]; _c->current_color.v[2] = d[2] * s[2]; _c->current_color.v[3] = d[3] * s[3]; - + if (_color_material_flags) { if (_color_material_flags & CMF_ambient) { _c->materials[0].ambient = _c->current_color; @@ -794,6 +798,8 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, // Set up the appropriate function callback for filling triangles, // according to the current state. + bool srgb_blend = _current_properties->get_srgb_color(); + int depth_write_state = 0; // zon const DepthWriteAttrib *target_depth_write = DCAST(DepthWriteAttrib, _target_rs->get_attrib_def(DepthWriteAttrib::get_class_slot())); if (target_depth_write->get_mode() != DepthWriteAttrib::M_on) { @@ -805,11 +811,23 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, const ColorWriteAttrib *target_color_write = DCAST(ColorWriteAttrib, _target_rs->get_attrib_def(ColorWriteAttrib::get_class_slot())); unsigned int color_channels = target_color_write->get_channels() & _color_write_mask; - if (color_channels != ColorWriteAttrib::C_all) { + + if (color_channels == ColorWriteAttrib::C_all) { + if (srgb_blend) { + color_write_state = 4; // csstore + } else { + color_write_state = 0; // cstore + } + } else { // Implement a color mask. int op_a = get_color_blend_op(ColorBlendAttrib::O_one); int op_b = get_color_blend_op(ColorBlendAttrib::O_zero); - _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels]; + + if (srgb_blend) { + _c->zb->store_pix_func = store_pixel_funcs_sRGB[op_a][op_b][color_channels]; + } else { + _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels]; + } color_write_state = 2; // cgeneral } @@ -817,12 +835,22 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, switch (target_transparency->get_mode()) { case TransparencyAttrib::M_alpha: case TransparencyAttrib::M_dual: - color_write_state = 1; // cblend - if (color_channels != ColorWriteAttrib::C_all) { + if (color_channels == ColorWriteAttrib::C_all) { + if (srgb_blend) { + color_write_state = 5; // csblend + } else { + color_write_state = 1; // cblend + } + } else { // Implement a color mask, with alpha blending. int op_a = get_color_blend_op(ColorBlendAttrib::O_incoming_alpha); int op_b = get_color_blend_op(ColorBlendAttrib::O_one_minus_incoming_alpha); - _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels]; + + if (srgb_blend) { + _c->zb->store_pix_func = store_pixel_funcs_sRGB[op_a][op_b][color_channels]; + } else { + _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels]; + } color_write_state = 2; // cgeneral } break; @@ -835,15 +863,20 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, if (target_color_blend->get_mode() == ColorBlendAttrib::M_add) { // If we have a color blend set that we can support, it overrides // the transparency set. - int op_a = get_color_blend_op(target_color_blend->get_operand_a()); - int op_b = get_color_blend_op(target_color_blend->get_operand_b()); - _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels]; LColor c = target_color_blend->get_color(); _c->zb->blend_r = (int)(c[0] * ZB_POINT_RED_MAX); _c->zb->blend_g = (int)(c[1] * ZB_POINT_GREEN_MAX); _c->zb->blend_b = (int)(c[2] * ZB_POINT_BLUE_MAX); _c->zb->blend_a = (int)(c[3] * ZB_POINT_ALPHA_MAX); + int op_a = get_color_blend_op(target_color_blend->get_operand_a()); + int op_b = get_color_blend_op(target_color_blend->get_operand_b()); + + if (srgb_blend) { + _c->zb->store_pix_func = store_pixel_funcs_sRGB[op_a][op_b][color_channels]; + } else { + _c->zb->store_pix_func = store_pixel_funcs[op_a][op_b][color_channels]; + } color_write_state = 2; // cgeneral } @@ -882,7 +915,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, depth_test_state = 0; // zless _c->depth_test = 0; } - + const ShadeModelAttrib *target_shade_model = DCAST(ShadeModelAttrib, _target_rs->get_attrib_def(ShadeModelAttrib::get_class_slot())); ShadeModelAttrib::Mode shade_model = target_shade_model->get_mode(); if (!needs_normal && !needs_color) { @@ -939,7 +972,7 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader, pixel_count_smooth_multitex2 = 0; pixel_count_smooth_multitex3 = 0; #endif // DO_PSTATS - + return true; } diff --git a/panda/src/tinydisplay/zbuffer.cxx b/panda/src/tinydisplay/zbuffer.cxx index e54baae0cf..b1607c055d 100644 --- a/panda/src/tinydisplay/zbuffer.cxx +++ b/panda/src/tinydisplay/zbuffer.cxx @@ -130,7 +130,7 @@ ZB_resize(ZBuffer * zb, void *frame_buffer, int xsize, int ysize) { } } -static void +static void ZB_copyBuffer(const ZBuffer * zb, void *buf, int linesize) { @@ -210,7 +210,7 @@ static void ZB_copyFrameBufferRGB24(const ZBuffer * zb, int y, n; fprintf(stderr, "copyFrameBufferRGB24\n"); - + q = zb->pbuf; p1 = (unsigned char *) buf; @@ -282,12 +282,12 @@ void ZB_zoomFrameBuffer(ZBuffer *dest, int dest_xmin, int dest_ymin, int dest_xs const ZBuffer *source, int source_xmin, int source_ymin, int source_xsize, int source_ysize) { int tyinc = dest->linesize / PSZB; int fyinc = source->linesize / PSZB; - + int fyt = 0; for (int ty = 0; ty < dest_ysize; ++ty) { int fy = fyt / dest_ysize; fyt += source_ysize; - + PIXEL *tp = dest->pbuf + dest_xmin + (dest_ymin + ty) * tyinc; PIXEL *fp = source->pbuf + source_xmin + (source_ymin + fy) * fyinc; ZPOINT *tz = dest->zbuf + dest_xmin + (dest_ymin + ty) * dest->xsize; @@ -296,7 +296,7 @@ void ZB_zoomFrameBuffer(ZBuffer *dest, int dest_xmin, int dest_ymin, int dest_xs for (int tx = 0; tx < dest_xsize; ++tx) { int fx = fxt / dest_xsize; fxt += source_xsize; - + tp[tx] = fp[fx]; tz[tx] = fz[fx]; } @@ -384,17 +384,14 @@ memset_RGB24(void *adr,int r, int v, int b,long count) { } void -ZB_clear(ZBuffer * zb, int clear_z, ZPOINT z, - int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a) { - unsigned int color; +ZB_clear(ZBuffer * zb, int clear_z, ZPOINT z, int clear_color, PIXEL color) { int y; PIXEL *pp; - + if (clear_z) { memset(zb->zbuf, 0, zb->xsize * zb->ysize * sizeof(ZPOINT)); } if (clear_color) { - color = RGBA_TO_PIXEL(r, g, b, a); pp = zb->pbuf; for (y = 0; y < zb->ysize; y++) { memset_l(pp, color, zb->xsize); @@ -404,15 +401,13 @@ ZB_clear(ZBuffer * zb, int clear_z, ZPOINT z, } void -ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, - int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a, +ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, int clear_color, PIXEL color, int xmin, int ymin, int xsize, int ysize) { - unsigned int color; int y; PIXEL *pp; ZPOINT *zz; - nassertv(xmin >= 0 && xmin < zb->xsize && + nassertv(xmin >= 0 && xmin < zb->xsize && ymin >= 0 && ymin < zb->ysize && xmin + xsize >= 0 && xmin + xsize <= zb->xsize && ymin + ysize >= 0 && ymin + ysize <= zb->ysize); @@ -425,7 +420,6 @@ ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, } } if (clear_color) { - color = RGBA_TO_PIXEL(r, g, b, a); pp = zb->pbuf + xmin + ymin * (zb->linesize / PSZB); for (y = 0; y < ysize; ++y) { memset_l(pp, color, xsize); diff --git a/panda/src/tinydisplay/zbuffer.h b/panda/src/tinydisplay/zbuffer.h index 909779dc07..a4c8a2015c 100644 --- a/panda/src/tinydisplay/zbuffer.h +++ b/panda/src/tinydisplay/zbuffer.h @@ -7,6 +7,7 @@ #include "zfeatures.h" #include "pbitops.h" +#include "srgb_tables.h" typedef unsigned int ZPOINT; #define ZB_Z_BITS 20 @@ -72,10 +73,19 @@ typedef unsigned int ZPOINT; ((((unsigned int)(a) << 16) & 0xff000000) | (((unsigned int)(r) << 8) & 0xff0000) | ((unsigned int)(g) & 0xff00) | ((unsigned int)(b) >> 8)) #define RGBA8_TO_PIXEL(r,g,b,a) \ ((((unsigned int)(a) << 24) & 0xff000000) | (((unsigned int)(r) << 16) & 0xff0000) | (((unsigned int)(g) << 8) & 0xff00) | (unsigned int)(b)) + +#define SRGB_TO_PIXEL(r,g,b) \ + ((encode_sRGB[(unsigned int)(r) >> 4] << 16) | (encode_sRGB10[(unsigned int)(g) >> 4] << 8) | (encode_sRGB[(unsigned int)(b) >> 4])) +#define SRGBA_TO_PIXEL(r,g,b,a) \ + ((((unsigned int)(a) << 16) & 0xff000000) | (encode_sRGB[(unsigned int)(r) >> 4] << 16) | (encode_sRGB[(unsigned int)(g) >> 4] << 8) | (encode_sRGB[(unsigned int)(b) >> 4])) + #define PIXEL_R(p) (((unsigned int)(p) & 0xff0000) >> 8) #define PIXEL_G(p) ((unsigned int)(p) & 0xff00) #define PIXEL_B(p) (((unsigned int)(p) & 0x00ff) << 8) #define PIXEL_A(p) (((unsigned int)(p) & 0xff000000) >> 16) +#define PIXEL_SR(p) (decode_sRGB[((unsigned int)(p) & 0xff0000) >> 16]) +#define PIXEL_SG(p) (decode_sRGB[((unsigned int)(p) & 0xff00) >> 8]) +#define PIXEL_SB(p) (decode_sRGB[((unsigned int)(p) & 0x00ff)]) typedef unsigned int PIXEL; #define PSZB 4 #define PSZSH 5 @@ -97,13 +107,24 @@ typedef unsigned int PIXEL; #define PCOMPONENT_BLEND(c1, c2, a2) \ ((((unsigned int)(c1) * ((unsigned int)0xffff - (unsigned int)(a2)) + (unsigned int)(c2) * (unsigned int)(a2))) >> 16) -#define PIXEL_BLEND(r1, g1, b1, r2, g2, b2, a2) \ +#define _BLEND_RGB(r1, g1, b1, r2, g2, b2, a2) \ RGBA_TO_PIXEL(PCOMPONENT_BLEND(r1, r2, a2), \ PCOMPONENT_BLEND(g1, g2, a2), \ PCOMPONENT_BLEND(b1, b2, a2), \ a2) + +#define _BLEND_SRGB(r1, g1, b1, r2, g2, b2, a2) \ + SRGBA_TO_PIXEL(PCOMPONENT_BLEND(r1, r2, a2), \ + PCOMPONENT_BLEND(g1, g2, a2), \ + PCOMPONENT_BLEND(b1, b2, a2), \ + a2) + #define PIXEL_BLEND_RGB(rgb, r, g, b, a) \ - PIXEL_BLEND(PIXEL_R(rgb), PIXEL_G(rgb), PIXEL_B(rgb), r, g, b, a) + _BLEND_RGB(PIXEL_R(rgb), PIXEL_G(rgb), PIXEL_B(rgb), r, g, b, a) + +#define PIXEL_BLEND_SRGB(rgb, r, g, b, a) \ + _BLEND_SRGB(PIXEL_SR(rgb), PIXEL_SG(rgb), PIXEL_SB(rgb), r, g, b, a) + typedef struct { PIXEL *pixmap; @@ -120,7 +141,7 @@ typedef void (*ZB_storePixelFunc)(ZBuffer *zb, PIXEL &result, int r, int g, int typedef PIXEL (*ZB_lookupTextureFunc)(ZTextureDef *texture_def, int s, int t, unsigned int level, unsigned int level_dx); -typedef int (*ZB_texWrapFunc)(int coord, int max_coord); +typedef int (*ZB_texWrapFunc)(int coord, int max_coord); struct ZTextureDef { ZTextureLevel *levels; @@ -138,11 +159,11 @@ struct ZBuffer { int xsize,ysize; int linesize; /* line size, in bytes */ int mode; - + ZPOINT *zbuf; PIXEL *pbuf; int frame_buffer_allocated; - + int nb_colors; unsigned char *dctable; int *ctable; @@ -156,14 +177,14 @@ struct ZBufferPoint { int x,y,z; /* integer coordinates in the zbuffer */ int s,t; /* coordinates for the mapping */ int r,g,b,a; /* color indexes */ - + PN_stdfloat sz,tz; /* temporary coordinates for mapping */ int sa, ta; /* mapping coordinates for optional second texture stage */ - PN_stdfloat sza,tza; + PN_stdfloat sza,tza; int sb, tb; /* mapping coordinates for optional third texture stage */ - PN_stdfloat szb,tzb; + PN_stdfloat szb,tzb; }; /* zbuffer.c */ @@ -200,10 +221,8 @@ ZBuffer *ZB_open(int xsize,int ysize,int mode, void ZB_close(ZBuffer *zb); void ZB_resize(ZBuffer *zb,void *frame_buffer,int xsize,int ysize); -void ZB_clear(ZBuffer *zb, int clear_z, ZPOINT z, - int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a); -void ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, - int clear_color, unsigned int r, unsigned int g, unsigned int b, unsigned int a, +void ZB_clear(ZBuffer *zb, int clear_z, ZPOINT z, int clear_color, PIXEL color); +void ZB_clear_viewport(ZBuffer * zb, int clear_z, ZPOINT z, int clear_color, PIXEL color, int xmin, int ymin, int xsize, int ysize); PIXEL lookup_texture_nearest(ZTextureDef *texture_def, int s, int t, unsigned int level, unsigned int level_dx); diff --git a/panda/src/tinydisplay/ztriangle.py b/panda/src/tinydisplay/ztriangle.py index f23b2dbeef..90f11e39aa 100755 --- a/panda/src/tinydisplay/ztriangle.py +++ b/panda/src/tinydisplay/ztriangle.py @@ -20,7 +20,7 @@ Options = [ [ 'zon', 'zoff' ], # color write - [ 'cstore', 'cblend', 'cgeneral', 'coff' ], + [ 'cstore', 'cblend', 'cgeneral', 'coff', 'csstore', 'csblend' ], # alpha test [ 'anone', 'aless', 'amore' ], @@ -64,6 +64,10 @@ CodeTable = { 'cgeneral' : '#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a)', 'coff' : '#define STORE_PIX(pix, rgb, r, g, b, a)', + # color write, sRGB + 'csstore' : '#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a)', + 'csblend' : '#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a)', + # alpha test 'anone' : '#define ACMP(zb, a) 1', 'aless' : '#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha)', @@ -264,6 +268,3 @@ print >> table_decl, 'extern const ZB_fillTriangleFunc fill_tri_funcs%s;' % (arr writeTableEntry([]) print >> table_def, '};' - - - diff --git a/panda/src/tinydisplay/ztriangle_code_1.h b/panda/src/tinydisplay/ztriangle_code_1.h index 4bf9d48cd2..658aff2a96 100644 --- a/panda/src/tinydisplay/ztriangle_code_1.h +++ b/panda/src/tinydisplay/ztriangle_code_1.h @@ -348,8 +348,182 @@ #define FNAME(name) FB_triangle_zon_cblend_amore_zless_tgeneral_ ## name #include "ztriangle_two.h" +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tnearest_ ## name +#include "ztriangle_two.h" -ZB_fillTriangleFunc ztriangle_code_1[540] = { +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tgeneral_ ## name +#include "ztriangle_two.h" + + +ZB_fillTriangleFunc ztriangle_code_1[810] = { FB_triangle_zon_cstore_anone_znone_tnearest_white_untextured, FB_triangle_zon_cstore_anone_znone_tnearest_white_textured, FB_triangle_zon_cstore_anone_znone_tnearest_white_perspective, @@ -890,4 +1064,274 @@ ZB_fillTriangleFunc ztriangle_code_1[540] = { FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_perspective, FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_multitex2, FB_triangle_zon_cblend_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tnearest_white_untextured, + FB_triangle_zon_cgeneral_anone_znone_tnearest_white_textured, + FB_triangle_zon_cgeneral_anone_znone_tnearest_white_perspective, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_untextured, + FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_textured, + FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_perspective, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_untextured, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_textured, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_perspective, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_untextured, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_textured, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_perspective, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_untextured, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_textured, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_perspective, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_untextured, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_textured, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_perspective, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_untextured, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_textured, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_perspective, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_untextured, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_textured, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_perspective, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_untextured, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_textured, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_perspective, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tnearest_white_untextured, + FB_triangle_zon_cgeneral_anone_zless_tnearest_white_textured, + FB_triangle_zon_cgeneral_anone_zless_tnearest_white_perspective, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_untextured, + FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_textured, + FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_perspective, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_untextured, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_textured, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_perspective, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_untextured, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_textured, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_perspective, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_untextured, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_textured, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_perspective, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_untextured, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_textured, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_perspective, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_untextured, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_textured, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_perspective, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_untextured, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_textured, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_perspective, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_untextured, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_textured, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_perspective, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tnearest_white_untextured, + FB_triangle_zon_cgeneral_aless_znone_tnearest_white_textured, + FB_triangle_zon_cgeneral_aless_znone_tnearest_white_perspective, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_untextured, + FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_textured, + FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_perspective, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_untextured, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_textured, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_perspective, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_untextured, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_textured, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_perspective, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_untextured, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_textured, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_perspective, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_untextured, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_textured, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_perspective, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_untextured, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_textured, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_perspective, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_untextured, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_textured, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_perspective, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_untextured, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_textured, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_perspective, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tnearest_white_untextured, + FB_triangle_zon_cgeneral_aless_zless_tnearest_white_textured, + FB_triangle_zon_cgeneral_aless_zless_tnearest_white_perspective, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_untextured, + FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_textured, + FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_perspective, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_untextured, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_textured, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_perspective, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_untextured, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_textured, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_perspective, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_untextured, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_textured, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_perspective, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_untextured, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_textured, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_perspective, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_untextured, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_textured, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_perspective, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_untextured, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_textured, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_perspective, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_untextured, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_textured, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_perspective, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tnearest_white_untextured, + FB_triangle_zon_cgeneral_amore_znone_tnearest_white_textured, + FB_triangle_zon_cgeneral_amore_znone_tnearest_white_perspective, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_untextured, + FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_textured, + FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_perspective, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_untextured, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_textured, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_perspective, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_untextured, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_textured, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_perspective, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_untextured, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_textured, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_perspective, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_untextured, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_textured, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_perspective, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_untextured, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_textured, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_perspective, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_untextured, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_textured, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_perspective, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_untextured, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_textured, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_perspective, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tnearest_white_untextured, + FB_triangle_zon_cgeneral_amore_zless_tnearest_white_textured, + FB_triangle_zon_cgeneral_amore_zless_tnearest_white_perspective, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_untextured, + FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_textured, + FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_perspective, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_untextured, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_textured, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_perspective, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_untextured, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_textured, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_perspective, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_untextured, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_textured, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_perspective, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_untextured, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_textured, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_perspective, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_untextured, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_textured, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_perspective, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_untextured, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_textured, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_perspective, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_untextured, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_textured, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_perspective, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3, }; diff --git a/panda/src/tinydisplay/ztriangle_code_2.h b/panda/src/tinydisplay/ztriangle_code_2.h index 3a1b72ef34..5f55c1ae32 100644 --- a/panda/src/tinydisplay/ztriangle_code_2.h +++ b/panda/src/tinydisplay/ztriangle_code_2.h @@ -1,179 +1,5 @@ /* This file is generated code--do not edit. See ztriangle.py. */ -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zon_cgeneral_anone_znone_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zon_cgeneral_anone_zless_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zon_cgeneral_aless_znone_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zon_cgeneral_aless_zless_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zon_cgeneral_amore_znone_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) (zpix) = (z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zon_cgeneral_amore_zless_tgeneral_ ## name -#include "ztriangle_two.h" - #define STORE_Z(zpix, z) (zpix) = (z) #define STORE_PIX(pix, rgb, r, g, b, a) #define ACMP(zb, a) 1 @@ -348,278 +174,356 @@ #define FNAME(name) FB_triangle_zon_coff_amore_zless_tgeneral_ ## name #include "ztriangle_two.h" +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csstore_anone_znone_tnearest_ ## name +#include "ztriangle_two.h" -ZB_fillTriangleFunc ztriangle_code_2[540] = { - FB_triangle_zon_cgeneral_anone_znone_tnearest_white_untextured, - FB_triangle_zon_cgeneral_anone_znone_tnearest_white_textured, - FB_triangle_zon_cgeneral_anone_znone_tnearest_white_perspective, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_untextured, - FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_textured, - FB_triangle_zon_cgeneral_anone_znone_tnearest_flat_perspective, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_untextured, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_textured, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_perspective, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_untextured, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_textured, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_white_perspective, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_untextured, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_textured, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_flat_perspective, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_untextured, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_textured, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_perspective, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_untextured, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_textured, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_white_perspective, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_untextured, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_textured, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_flat_perspective, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_untextured, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_textured, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_perspective, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tnearest_white_untextured, - FB_triangle_zon_cgeneral_anone_zless_tnearest_white_textured, - FB_triangle_zon_cgeneral_anone_zless_tnearest_white_perspective, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_untextured, - FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_textured, - FB_triangle_zon_cgeneral_anone_zless_tnearest_flat_perspective, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_untextured, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_textured, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_perspective, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_untextured, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_textured, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_white_perspective, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_untextured, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_textured, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_flat_perspective, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_untextured, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_textured, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_perspective, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_untextured, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_textured, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_white_perspective, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_untextured, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_textured, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_flat_perspective, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_untextured, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_textured, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_perspective, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_anone_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tnearest_white_untextured, - FB_triangle_zon_cgeneral_aless_znone_tnearest_white_textured, - FB_triangle_zon_cgeneral_aless_znone_tnearest_white_perspective, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_untextured, - FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_textured, - FB_triangle_zon_cgeneral_aless_znone_tnearest_flat_perspective, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_untextured, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_textured, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_perspective, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_untextured, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_textured, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_white_perspective, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_untextured, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_textured, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_flat_perspective, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_untextured, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_textured, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_perspective, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_untextured, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_textured, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_white_perspective, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_untextured, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_textured, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_flat_perspective, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_untextured, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_textured, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_perspective, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tnearest_white_untextured, - FB_triangle_zon_cgeneral_aless_zless_tnearest_white_textured, - FB_triangle_zon_cgeneral_aless_zless_tnearest_white_perspective, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_untextured, - FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_textured, - FB_triangle_zon_cgeneral_aless_zless_tnearest_flat_perspective, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_untextured, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_textured, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_perspective, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_untextured, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_textured, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_white_perspective, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_untextured, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_textured, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_flat_perspective, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_untextured, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_textured, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_perspective, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_untextured, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_textured, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_white_perspective, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_untextured, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_textured, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_flat_perspective, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_untextured, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_textured, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_perspective, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_aless_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tnearest_white_untextured, - FB_triangle_zon_cgeneral_amore_znone_tnearest_white_textured, - FB_triangle_zon_cgeneral_amore_znone_tnearest_white_perspective, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_untextured, - FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_textured, - FB_triangle_zon_cgeneral_amore_znone_tnearest_flat_perspective, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_untextured, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_textured, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_perspective, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_untextured, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_textured, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_white_perspective, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_untextured, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_textured, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_flat_perspective, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_untextured, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_textured, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_perspective, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_untextured, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_textured, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_white_perspective, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_untextured, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_textured, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_flat_perspective, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_untextured, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_textured, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_perspective, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_znone_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tnearest_white_untextured, - FB_triangle_zon_cgeneral_amore_zless_tnearest_white_textured, - FB_triangle_zon_cgeneral_amore_zless_tnearest_white_perspective, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_untextured, - FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_textured, - FB_triangle_zon_cgeneral_amore_zless_tnearest_flat_perspective, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_untextured, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_textured, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_perspective, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tnearest_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_untextured, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_textured, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_white_perspective, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_untextured, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_textured, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_flat_perspective, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_untextured, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_textured, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_perspective, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tmipmap_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_untextured, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_textured, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_white_perspective, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_untextured, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_textured, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_flat_perspective, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_untextured, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_textured, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_perspective, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex2, - FB_triangle_zon_cgeneral_amore_zless_tgeneral_smooth_multitex3, +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csstore_anone_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csstore_anone_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csstore_anone_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csstore_anone_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csstore_anone_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csstore_aless_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csstore_aless_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csstore_aless_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csstore_aless_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csstore_aless_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csstore_aless_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csstore_amore_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csstore_amore_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csstore_amore_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csstore_amore_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csstore_amore_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csstore_amore_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csblend_anone_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csblend_anone_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csblend_anone_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csblend_anone_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csblend_anone_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csblend_anone_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csblend_aless_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csblend_aless_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csblend_aless_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csblend_aless_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csblend_aless_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csblend_aless_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csblend_amore_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csblend_amore_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csblend_amore_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zon_csblend_amore_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zon_csblend_amore_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) (zpix) = (z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zon_csblend_amore_zless_tgeneral_ ## name +#include "ztriangle_two.h" + + +ZB_fillTriangleFunc ztriangle_code_2[810] = { FB_triangle_zon_coff_anone_znone_tnearest_white_untextured, FB_triangle_zon_coff_anone_znone_tnearest_white_textured, FB_triangle_zon_coff_anone_znone_tnearest_white_perspective, @@ -890,4 +794,544 @@ ZB_fillTriangleFunc ztriangle_code_2[540] = { FB_triangle_zon_coff_amore_zless_tgeneral_smooth_perspective, FB_triangle_zon_coff_amore_zless_tgeneral_smooth_multitex2, FB_triangle_zon_coff_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tnearest_white_untextured, + FB_triangle_zon_csstore_anone_znone_tnearest_white_textured, + FB_triangle_zon_csstore_anone_znone_tnearest_white_perspective, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tnearest_flat_untextured, + FB_triangle_zon_csstore_anone_znone_tnearest_flat_textured, + FB_triangle_zon_csstore_anone_znone_tnearest_flat_perspective, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_untextured, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_textured, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_perspective, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tmipmap_white_untextured, + FB_triangle_zon_csstore_anone_znone_tmipmap_white_textured, + FB_triangle_zon_csstore_anone_znone_tmipmap_white_perspective, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tmipmap_flat_untextured, + FB_triangle_zon_csstore_anone_znone_tmipmap_flat_textured, + FB_triangle_zon_csstore_anone_znone_tmipmap_flat_perspective, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_untextured, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_textured, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_perspective, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tgeneral_white_untextured, + FB_triangle_zon_csstore_anone_znone_tgeneral_white_textured, + FB_triangle_zon_csstore_anone_znone_tgeneral_white_perspective, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tgeneral_flat_untextured, + FB_triangle_zon_csstore_anone_znone_tgeneral_flat_textured, + FB_triangle_zon_csstore_anone_znone_tgeneral_flat_perspective, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_untextured, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_textured, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_perspective, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tnearest_white_untextured, + FB_triangle_zon_csstore_anone_zless_tnearest_white_textured, + FB_triangle_zon_csstore_anone_zless_tnearest_white_perspective, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tnearest_flat_untextured, + FB_triangle_zon_csstore_anone_zless_tnearest_flat_textured, + FB_triangle_zon_csstore_anone_zless_tnearest_flat_perspective, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_untextured, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_textured, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_perspective, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tmipmap_white_untextured, + FB_triangle_zon_csstore_anone_zless_tmipmap_white_textured, + FB_triangle_zon_csstore_anone_zless_tmipmap_white_perspective, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tmipmap_flat_untextured, + FB_triangle_zon_csstore_anone_zless_tmipmap_flat_textured, + FB_triangle_zon_csstore_anone_zless_tmipmap_flat_perspective, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_untextured, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_textured, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_perspective, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tgeneral_white_untextured, + FB_triangle_zon_csstore_anone_zless_tgeneral_white_textured, + FB_triangle_zon_csstore_anone_zless_tgeneral_white_perspective, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tgeneral_flat_untextured, + FB_triangle_zon_csstore_anone_zless_tgeneral_flat_textured, + FB_triangle_zon_csstore_anone_zless_tgeneral_flat_perspective, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_untextured, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_textured, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_perspective, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tnearest_white_untextured, + FB_triangle_zon_csstore_aless_znone_tnearest_white_textured, + FB_triangle_zon_csstore_aless_znone_tnearest_white_perspective, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tnearest_flat_untextured, + FB_triangle_zon_csstore_aless_znone_tnearest_flat_textured, + FB_triangle_zon_csstore_aless_znone_tnearest_flat_perspective, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_untextured, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_textured, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_perspective, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tmipmap_white_untextured, + FB_triangle_zon_csstore_aless_znone_tmipmap_white_textured, + FB_triangle_zon_csstore_aless_znone_tmipmap_white_perspective, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tmipmap_flat_untextured, + FB_triangle_zon_csstore_aless_znone_tmipmap_flat_textured, + FB_triangle_zon_csstore_aless_znone_tmipmap_flat_perspective, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_untextured, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_textured, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_perspective, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tgeneral_white_untextured, + FB_triangle_zon_csstore_aless_znone_tgeneral_white_textured, + FB_triangle_zon_csstore_aless_znone_tgeneral_white_perspective, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tgeneral_flat_untextured, + FB_triangle_zon_csstore_aless_znone_tgeneral_flat_textured, + FB_triangle_zon_csstore_aless_znone_tgeneral_flat_perspective, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_untextured, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_textured, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_perspective, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tnearest_white_untextured, + FB_triangle_zon_csstore_aless_zless_tnearest_white_textured, + FB_triangle_zon_csstore_aless_zless_tnearest_white_perspective, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tnearest_flat_untextured, + FB_triangle_zon_csstore_aless_zless_tnearest_flat_textured, + FB_triangle_zon_csstore_aless_zless_tnearest_flat_perspective, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_untextured, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_textured, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_perspective, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tmipmap_white_untextured, + FB_triangle_zon_csstore_aless_zless_tmipmap_white_textured, + FB_triangle_zon_csstore_aless_zless_tmipmap_white_perspective, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tmipmap_flat_untextured, + FB_triangle_zon_csstore_aless_zless_tmipmap_flat_textured, + FB_triangle_zon_csstore_aless_zless_tmipmap_flat_perspective, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_untextured, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_textured, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_perspective, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tgeneral_white_untextured, + FB_triangle_zon_csstore_aless_zless_tgeneral_white_textured, + FB_triangle_zon_csstore_aless_zless_tgeneral_white_perspective, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tgeneral_flat_untextured, + FB_triangle_zon_csstore_aless_zless_tgeneral_flat_textured, + FB_triangle_zon_csstore_aless_zless_tgeneral_flat_perspective, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_untextured, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_textured, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_perspective, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tnearest_white_untextured, + FB_triangle_zon_csstore_amore_znone_tnearest_white_textured, + FB_triangle_zon_csstore_amore_znone_tnearest_white_perspective, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tnearest_flat_untextured, + FB_triangle_zon_csstore_amore_znone_tnearest_flat_textured, + FB_triangle_zon_csstore_amore_znone_tnearest_flat_perspective, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_untextured, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_textured, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_perspective, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tmipmap_white_untextured, + FB_triangle_zon_csstore_amore_znone_tmipmap_white_textured, + FB_triangle_zon_csstore_amore_znone_tmipmap_white_perspective, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tmipmap_flat_untextured, + FB_triangle_zon_csstore_amore_znone_tmipmap_flat_textured, + FB_triangle_zon_csstore_amore_znone_tmipmap_flat_perspective, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_untextured, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_textured, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_perspective, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tgeneral_white_untextured, + FB_triangle_zon_csstore_amore_znone_tgeneral_white_textured, + FB_triangle_zon_csstore_amore_znone_tgeneral_white_perspective, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tgeneral_flat_untextured, + FB_triangle_zon_csstore_amore_znone_tgeneral_flat_textured, + FB_triangle_zon_csstore_amore_znone_tgeneral_flat_perspective, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_untextured, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_textured, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_perspective, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tnearest_white_untextured, + FB_triangle_zon_csstore_amore_zless_tnearest_white_textured, + FB_triangle_zon_csstore_amore_zless_tnearest_white_perspective, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tnearest_flat_untextured, + FB_triangle_zon_csstore_amore_zless_tnearest_flat_textured, + FB_triangle_zon_csstore_amore_zless_tnearest_flat_perspective, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_untextured, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_textured, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_perspective, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tmipmap_white_untextured, + FB_triangle_zon_csstore_amore_zless_tmipmap_white_textured, + FB_triangle_zon_csstore_amore_zless_tmipmap_white_perspective, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tmipmap_flat_untextured, + FB_triangle_zon_csstore_amore_zless_tmipmap_flat_textured, + FB_triangle_zon_csstore_amore_zless_tmipmap_flat_perspective, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_untextured, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_textured, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_perspective, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tgeneral_white_untextured, + FB_triangle_zon_csstore_amore_zless_tgeneral_white_textured, + FB_triangle_zon_csstore_amore_zless_tgeneral_white_perspective, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tgeneral_flat_untextured, + FB_triangle_zon_csstore_amore_zless_tgeneral_flat_textured, + FB_triangle_zon_csstore_amore_zless_tgeneral_flat_perspective, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_untextured, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_textured, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_perspective, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csstore_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tnearest_white_untextured, + FB_triangle_zon_csblend_anone_znone_tnearest_white_textured, + FB_triangle_zon_csblend_anone_znone_tnearest_white_perspective, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tnearest_flat_untextured, + FB_triangle_zon_csblend_anone_znone_tnearest_flat_textured, + FB_triangle_zon_csblend_anone_znone_tnearest_flat_perspective, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_untextured, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_textured, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_perspective, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tmipmap_white_untextured, + FB_triangle_zon_csblend_anone_znone_tmipmap_white_textured, + FB_triangle_zon_csblend_anone_znone_tmipmap_white_perspective, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tmipmap_flat_untextured, + FB_triangle_zon_csblend_anone_znone_tmipmap_flat_textured, + FB_triangle_zon_csblend_anone_znone_tmipmap_flat_perspective, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_untextured, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_textured, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_perspective, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tgeneral_white_untextured, + FB_triangle_zon_csblend_anone_znone_tgeneral_white_textured, + FB_triangle_zon_csblend_anone_znone_tgeneral_white_perspective, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tgeneral_flat_untextured, + FB_triangle_zon_csblend_anone_znone_tgeneral_flat_textured, + FB_triangle_zon_csblend_anone_znone_tgeneral_flat_perspective, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_untextured, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_textured, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_perspective, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tnearest_white_untextured, + FB_triangle_zon_csblend_anone_zless_tnearest_white_textured, + FB_triangle_zon_csblend_anone_zless_tnearest_white_perspective, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tnearest_flat_untextured, + FB_triangle_zon_csblend_anone_zless_tnearest_flat_textured, + FB_triangle_zon_csblend_anone_zless_tnearest_flat_perspective, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_untextured, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_textured, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_perspective, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tmipmap_white_untextured, + FB_triangle_zon_csblend_anone_zless_tmipmap_white_textured, + FB_triangle_zon_csblend_anone_zless_tmipmap_white_perspective, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tmipmap_flat_untextured, + FB_triangle_zon_csblend_anone_zless_tmipmap_flat_textured, + FB_triangle_zon_csblend_anone_zless_tmipmap_flat_perspective, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_untextured, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_textured, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_perspective, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tgeneral_white_untextured, + FB_triangle_zon_csblend_anone_zless_tgeneral_white_textured, + FB_triangle_zon_csblend_anone_zless_tgeneral_white_perspective, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tgeneral_flat_untextured, + FB_triangle_zon_csblend_anone_zless_tgeneral_flat_textured, + FB_triangle_zon_csblend_anone_zless_tgeneral_flat_perspective, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_untextured, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_textured, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_perspective, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tnearest_white_untextured, + FB_triangle_zon_csblend_aless_znone_tnearest_white_textured, + FB_triangle_zon_csblend_aless_znone_tnearest_white_perspective, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tnearest_flat_untextured, + FB_triangle_zon_csblend_aless_znone_tnearest_flat_textured, + FB_triangle_zon_csblend_aless_znone_tnearest_flat_perspective, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_untextured, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_textured, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_perspective, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tmipmap_white_untextured, + FB_triangle_zon_csblend_aless_znone_tmipmap_white_textured, + FB_triangle_zon_csblend_aless_znone_tmipmap_white_perspective, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tmipmap_flat_untextured, + FB_triangle_zon_csblend_aless_znone_tmipmap_flat_textured, + FB_triangle_zon_csblend_aless_znone_tmipmap_flat_perspective, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_untextured, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_textured, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_perspective, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tgeneral_white_untextured, + FB_triangle_zon_csblend_aless_znone_tgeneral_white_textured, + FB_triangle_zon_csblend_aless_znone_tgeneral_white_perspective, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tgeneral_flat_untextured, + FB_triangle_zon_csblend_aless_znone_tgeneral_flat_textured, + FB_triangle_zon_csblend_aless_znone_tgeneral_flat_perspective, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_untextured, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_textured, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_perspective, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tnearest_white_untextured, + FB_triangle_zon_csblend_aless_zless_tnearest_white_textured, + FB_triangle_zon_csblend_aless_zless_tnearest_white_perspective, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tnearest_flat_untextured, + FB_triangle_zon_csblend_aless_zless_tnearest_flat_textured, + FB_triangle_zon_csblend_aless_zless_tnearest_flat_perspective, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_untextured, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_textured, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_perspective, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tmipmap_white_untextured, + FB_triangle_zon_csblend_aless_zless_tmipmap_white_textured, + FB_triangle_zon_csblend_aless_zless_tmipmap_white_perspective, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tmipmap_flat_untextured, + FB_triangle_zon_csblend_aless_zless_tmipmap_flat_textured, + FB_triangle_zon_csblend_aless_zless_tmipmap_flat_perspective, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_untextured, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_textured, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_perspective, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tgeneral_white_untextured, + FB_triangle_zon_csblend_aless_zless_tgeneral_white_textured, + FB_triangle_zon_csblend_aless_zless_tgeneral_white_perspective, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tgeneral_flat_untextured, + FB_triangle_zon_csblend_aless_zless_tgeneral_flat_textured, + FB_triangle_zon_csblend_aless_zless_tgeneral_flat_perspective, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_untextured, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_textured, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_perspective, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tnearest_white_untextured, + FB_triangle_zon_csblend_amore_znone_tnearest_white_textured, + FB_triangle_zon_csblend_amore_znone_tnearest_white_perspective, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tnearest_flat_untextured, + FB_triangle_zon_csblend_amore_znone_tnearest_flat_textured, + FB_triangle_zon_csblend_amore_znone_tnearest_flat_perspective, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_untextured, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_textured, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_perspective, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tmipmap_white_untextured, + FB_triangle_zon_csblend_amore_znone_tmipmap_white_textured, + FB_triangle_zon_csblend_amore_znone_tmipmap_white_perspective, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tmipmap_flat_untextured, + FB_triangle_zon_csblend_amore_znone_tmipmap_flat_textured, + FB_triangle_zon_csblend_amore_znone_tmipmap_flat_perspective, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_untextured, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_textured, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_perspective, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tgeneral_white_untextured, + FB_triangle_zon_csblend_amore_znone_tgeneral_white_textured, + FB_triangle_zon_csblend_amore_znone_tgeneral_white_perspective, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tgeneral_flat_untextured, + FB_triangle_zon_csblend_amore_znone_tgeneral_flat_textured, + FB_triangle_zon_csblend_amore_znone_tgeneral_flat_perspective, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_untextured, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_textured, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_perspective, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tnearest_white_untextured, + FB_triangle_zon_csblend_amore_zless_tnearest_white_textured, + FB_triangle_zon_csblend_amore_zless_tnearest_white_perspective, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tnearest_flat_untextured, + FB_triangle_zon_csblend_amore_zless_tnearest_flat_textured, + FB_triangle_zon_csblend_amore_zless_tnearest_flat_perspective, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_untextured, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_textured, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_perspective, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tmipmap_white_untextured, + FB_triangle_zon_csblend_amore_zless_tmipmap_white_textured, + FB_triangle_zon_csblend_amore_zless_tmipmap_white_perspective, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tmipmap_flat_untextured, + FB_triangle_zon_csblend_amore_zless_tmipmap_flat_textured, + FB_triangle_zon_csblend_amore_zless_tmipmap_flat_perspective, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_untextured, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_textured, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_perspective, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tgeneral_white_untextured, + FB_triangle_zon_csblend_amore_zless_tgeneral_white_textured, + FB_triangle_zon_csblend_amore_zless_tgeneral_white_perspective, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tgeneral_flat_untextured, + FB_triangle_zon_csblend_amore_zless_tgeneral_flat_textured, + FB_triangle_zon_csblend_amore_zless_tgeneral_flat_perspective, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_untextured, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_textured, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_perspective, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zon_csblend_amore_zless_tgeneral_smooth_multitex3, }; diff --git a/panda/src/tinydisplay/ztriangle_code_3.h b/panda/src/tinydisplay/ztriangle_code_3.h index 4c85767cd2..9e097ef964 100644 --- a/panda/src/tinydisplay/ztriangle_code_3.h +++ b/panda/src/tinydisplay/ztriangle_code_3.h @@ -348,8 +348,182 @@ #define FNAME(name) FB_triangle_zoff_cblend_amore_zless_tgeneral_ ## name #include "ztriangle_two.h" +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tnearest_ ## name +#include "ztriangle_two.h" -ZB_fillTriangleFunc ztriangle_code_3[540] = { +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tgeneral_ ## name +#include "ztriangle_two.h" + + +ZB_fillTriangleFunc ztriangle_code_3[810] = { FB_triangle_zoff_cstore_anone_znone_tnearest_white_untextured, FB_triangle_zoff_cstore_anone_znone_tnearest_white_textured, FB_triangle_zoff_cstore_anone_znone_tnearest_white_perspective, @@ -890,4 +1064,274 @@ ZB_fillTriangleFunc ztriangle_code_3[540] = { FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_perspective, FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_multitex2, FB_triangle_zoff_cblend_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_textured, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_textured, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_textured, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_textured, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_textured, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_textured, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_textured, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_textured, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_textured, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_textured, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_textured, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_textured, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_textured, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_textured, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_textured, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_textured, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_textured, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_textured, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_textured, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_textured, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_textured, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_textured, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_textured, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_textured, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_textured, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_textured, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_textured, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_textured, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_textured, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_textured, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_textured, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_textured, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_textured, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_textured, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_textured, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_textured, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_textured, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_textured, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_textured, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_textured, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_textured, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_textured, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_textured, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_textured, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_textured, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_textured, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_textured, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_textured, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_textured, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_textured, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_textured, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_textured, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_textured, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_textured, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3, }; diff --git a/panda/src/tinydisplay/ztriangle_code_4.h b/panda/src/tinydisplay/ztriangle_code_4.h index cb0f170d40..1c04b94b52 100644 --- a/panda/src/tinydisplay/ztriangle_code_4.h +++ b/panda/src/tinydisplay/ztriangle_code_4.h @@ -1,179 +1,5 @@ /* This file is generated code--do not edit. See ztriangle.py. */ -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zoff_cgeneral_anone_znone_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) 1 -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zoff_cgeneral_anone_zless_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zoff_cgeneral_aless_znone_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zoff_cgeneral_aless_zless_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) 1 -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zoff_cgeneral_amore_znone_tgeneral_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) -#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tnearest_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) -#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tmipmap_ ## name -#include "ztriangle_two.h" - -#define STORE_Z(zpix, z) -#define STORE_PIX(pix, rgb, r, g, b, a) zb->store_pix_func(zb, pix, r, g, b, a) -#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) -#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) -#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) -#define INTERP_MIPMAP -#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) -#define FNAME(name) FB_triangle_zoff_cgeneral_amore_zless_tgeneral_ ## name -#include "ztriangle_two.h" - #define STORE_Z(zpix, z) #define STORE_PIX(pix, rgb, r, g, b, a) #define ACMP(zb, a) 1 @@ -348,278 +174,356 @@ #define FNAME(name) FB_triangle_zoff_coff_amore_zless_tgeneral_ ## name #include "ztriangle_two.h" +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csstore_anone_znone_tnearest_ ## name +#include "ztriangle_two.h" -ZB_fillTriangleFunc ztriangle_code_4[540] = { - FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_textured, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_white_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_textured, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_flat_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_textured, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_textured, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_white_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_textured, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_flat_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_textured, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_textured, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_white_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_textured, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_flat_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_untextured, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_textured, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_perspective, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_textured, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_white_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_textured, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_flat_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_textured, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_textured, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_white_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_textured, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_flat_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_textured, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_textured, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_white_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_textured, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_flat_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_untextured, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_textured, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_perspective, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_anone_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_textured, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_white_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_textured, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_flat_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_textured, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_textured, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_white_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_textured, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_flat_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_textured, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_textured, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_white_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_textured, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_flat_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_untextured, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_textured, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_perspective, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_textured, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_white_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_textured, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_flat_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_textured, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_textured, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_white_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_textured, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_flat_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_textured, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_textured, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_white_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_textured, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_flat_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_untextured, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_textured, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_perspective, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_aless_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_textured, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_white_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_textured, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_flat_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_textured, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_textured, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_white_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_textured, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_flat_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_textured, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_textured, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_white_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_textured, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_flat_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_untextured, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_textured, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_perspective, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_znone_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_textured, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_white_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_textured, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_flat_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_textured, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tnearest_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_textured, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_white_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_textured, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_flat_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_textured, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tmipmap_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_textured, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_white_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_textured, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_flat_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_untextured, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_textured, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_perspective, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex2, - FB_triangle_zoff_cgeneral_amore_zless_tgeneral_smooth_multitex3, +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csstore_anone_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csstore_anone_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csstore_anone_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csstore_anone_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csstore_anone_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csstore_aless_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csstore_aless_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csstore_aless_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csstore_aless_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csstore_aless_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csstore_aless_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csstore_amore_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csstore_amore_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csstore_amore_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csstore_amore_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csstore_amore_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = SRGBA_TO_PIXEL(r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csstore_amore_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csblend_anone_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csblend_anone_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csblend_anone_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csblend_anone_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csblend_anone_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) 1 +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csblend_anone_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csblend_aless_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csblend_aless_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csblend_aless_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csblend_aless_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csblend_aless_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) < (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csblend_aless_zless_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csblend_amore_znone_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csblend_amore_znone_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) 1 +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csblend_amore_znone_tgeneral_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_NEAREST(texture_def, s, t) +#define FNAME(name) FB_triangle_zoff_csblend_amore_zless_tnearest_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ZB_LOOKUP_TEXTURE_MIPMAP_NEAREST(texture_def, s, t, level) +#define FNAME(name) FB_triangle_zoff_csblend_amore_zless_tmipmap_ ## name +#include "ztriangle_two.h" + +#define STORE_Z(zpix, z) +#define STORE_PIX(pix, rgb, r, g, b, a) (pix) = PIXEL_BLEND_SRGB(pix, r, g, b, a) +#define ACMP(zb, a) (((int)(a)) > (zb)->reference_alpha) +#define ZCMP(zpix, z) ((ZPOINT)(zpix) < (ZPOINT)(z)) +#define CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) DO_CALC_MIPMAP_LEVEL(mipmap_level, mipmap_dx, dsdx, dtdx) +#define INTERP_MIPMAP +#define ZB_LOOKUP_TEXTURE(texture_def, s, t, level, level_dx) ((level == 0) ? (texture_def)->tex_magfilter_func(texture_def, s, t, level, level_dx) : (texture_def)->tex_minfilter_func(texture_def, s, t, level, level_dx)) +#define FNAME(name) FB_triangle_zoff_csblend_amore_zless_tgeneral_ ## name +#include "ztriangle_two.h" + + +ZB_fillTriangleFunc ztriangle_code_4[810] = { FB_triangle_zoff_coff_anone_znone_tnearest_white_untextured, FB_triangle_zoff_coff_anone_znone_tnearest_white_textured, FB_triangle_zoff_coff_anone_znone_tnearest_white_perspective, @@ -890,4 +794,544 @@ ZB_fillTriangleFunc ztriangle_code_4[540] = { FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_perspective, FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_multitex2, FB_triangle_zoff_coff_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tnearest_white_untextured, + FB_triangle_zoff_csstore_anone_znone_tnearest_white_textured, + FB_triangle_zoff_csstore_anone_znone_tnearest_white_perspective, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tnearest_flat_untextured, + FB_triangle_zoff_csstore_anone_znone_tnearest_flat_textured, + FB_triangle_zoff_csstore_anone_znone_tnearest_flat_perspective, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_untextured, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_textured, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_perspective, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tmipmap_white_untextured, + FB_triangle_zoff_csstore_anone_znone_tmipmap_white_textured, + FB_triangle_zoff_csstore_anone_znone_tmipmap_white_perspective, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tmipmap_flat_untextured, + FB_triangle_zoff_csstore_anone_znone_tmipmap_flat_textured, + FB_triangle_zoff_csstore_anone_znone_tmipmap_flat_perspective, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_textured, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tgeneral_white_untextured, + FB_triangle_zoff_csstore_anone_znone_tgeneral_white_textured, + FB_triangle_zoff_csstore_anone_znone_tgeneral_white_perspective, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tgeneral_flat_untextured, + FB_triangle_zoff_csstore_anone_znone_tgeneral_flat_textured, + FB_triangle_zoff_csstore_anone_znone_tgeneral_flat_perspective, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_textured, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tnearest_white_untextured, + FB_triangle_zoff_csstore_anone_zless_tnearest_white_textured, + FB_triangle_zoff_csstore_anone_zless_tnearest_white_perspective, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tnearest_flat_untextured, + FB_triangle_zoff_csstore_anone_zless_tnearest_flat_textured, + FB_triangle_zoff_csstore_anone_zless_tnearest_flat_perspective, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_untextured, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_textured, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_perspective, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tmipmap_white_untextured, + FB_triangle_zoff_csstore_anone_zless_tmipmap_white_textured, + FB_triangle_zoff_csstore_anone_zless_tmipmap_white_perspective, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tmipmap_flat_untextured, + FB_triangle_zoff_csstore_anone_zless_tmipmap_flat_textured, + FB_triangle_zoff_csstore_anone_zless_tmipmap_flat_perspective, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_textured, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tgeneral_white_untextured, + FB_triangle_zoff_csstore_anone_zless_tgeneral_white_textured, + FB_triangle_zoff_csstore_anone_zless_tgeneral_white_perspective, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tgeneral_flat_untextured, + FB_triangle_zoff_csstore_anone_zless_tgeneral_flat_textured, + FB_triangle_zoff_csstore_anone_zless_tgeneral_flat_perspective, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_textured, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tnearest_white_untextured, + FB_triangle_zoff_csstore_aless_znone_tnearest_white_textured, + FB_triangle_zoff_csstore_aless_znone_tnearest_white_perspective, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tnearest_flat_untextured, + FB_triangle_zoff_csstore_aless_znone_tnearest_flat_textured, + FB_triangle_zoff_csstore_aless_znone_tnearest_flat_perspective, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_untextured, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_textured, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_perspective, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tmipmap_white_untextured, + FB_triangle_zoff_csstore_aless_znone_tmipmap_white_textured, + FB_triangle_zoff_csstore_aless_znone_tmipmap_white_perspective, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tmipmap_flat_untextured, + FB_triangle_zoff_csstore_aless_znone_tmipmap_flat_textured, + FB_triangle_zoff_csstore_aless_znone_tmipmap_flat_perspective, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_textured, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tgeneral_white_untextured, + FB_triangle_zoff_csstore_aless_znone_tgeneral_white_textured, + FB_triangle_zoff_csstore_aless_znone_tgeneral_white_perspective, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tgeneral_flat_untextured, + FB_triangle_zoff_csstore_aless_znone_tgeneral_flat_textured, + FB_triangle_zoff_csstore_aless_znone_tgeneral_flat_perspective, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_textured, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tnearest_white_untextured, + FB_triangle_zoff_csstore_aless_zless_tnearest_white_textured, + FB_triangle_zoff_csstore_aless_zless_tnearest_white_perspective, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tnearest_flat_untextured, + FB_triangle_zoff_csstore_aless_zless_tnearest_flat_textured, + FB_triangle_zoff_csstore_aless_zless_tnearest_flat_perspective, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_untextured, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_textured, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_perspective, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tmipmap_white_untextured, + FB_triangle_zoff_csstore_aless_zless_tmipmap_white_textured, + FB_triangle_zoff_csstore_aless_zless_tmipmap_white_perspective, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tmipmap_flat_untextured, + FB_triangle_zoff_csstore_aless_zless_tmipmap_flat_textured, + FB_triangle_zoff_csstore_aless_zless_tmipmap_flat_perspective, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_textured, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tgeneral_white_untextured, + FB_triangle_zoff_csstore_aless_zless_tgeneral_white_textured, + FB_triangle_zoff_csstore_aless_zless_tgeneral_white_perspective, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tgeneral_flat_untextured, + FB_triangle_zoff_csstore_aless_zless_tgeneral_flat_textured, + FB_triangle_zoff_csstore_aless_zless_tgeneral_flat_perspective, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_textured, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tnearest_white_untextured, + FB_triangle_zoff_csstore_amore_znone_tnearest_white_textured, + FB_triangle_zoff_csstore_amore_znone_tnearest_white_perspective, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tnearest_flat_untextured, + FB_triangle_zoff_csstore_amore_znone_tnearest_flat_textured, + FB_triangle_zoff_csstore_amore_znone_tnearest_flat_perspective, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_untextured, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_textured, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_perspective, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tmipmap_white_untextured, + FB_triangle_zoff_csstore_amore_znone_tmipmap_white_textured, + FB_triangle_zoff_csstore_amore_znone_tmipmap_white_perspective, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tmipmap_flat_untextured, + FB_triangle_zoff_csstore_amore_znone_tmipmap_flat_textured, + FB_triangle_zoff_csstore_amore_znone_tmipmap_flat_perspective, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_textured, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tgeneral_white_untextured, + FB_triangle_zoff_csstore_amore_znone_tgeneral_white_textured, + FB_triangle_zoff_csstore_amore_znone_tgeneral_white_perspective, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tgeneral_flat_untextured, + FB_triangle_zoff_csstore_amore_znone_tgeneral_flat_textured, + FB_triangle_zoff_csstore_amore_znone_tgeneral_flat_perspective, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_textured, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tnearest_white_untextured, + FB_triangle_zoff_csstore_amore_zless_tnearest_white_textured, + FB_triangle_zoff_csstore_amore_zless_tnearest_white_perspective, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tnearest_flat_untextured, + FB_triangle_zoff_csstore_amore_zless_tnearest_flat_textured, + FB_triangle_zoff_csstore_amore_zless_tnearest_flat_perspective, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_untextured, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_textured, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_perspective, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tmipmap_white_untextured, + FB_triangle_zoff_csstore_amore_zless_tmipmap_white_textured, + FB_triangle_zoff_csstore_amore_zless_tmipmap_white_perspective, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tmipmap_flat_untextured, + FB_triangle_zoff_csstore_amore_zless_tmipmap_flat_textured, + FB_triangle_zoff_csstore_amore_zless_tmipmap_flat_perspective, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_textured, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tgeneral_white_untextured, + FB_triangle_zoff_csstore_amore_zless_tgeneral_white_textured, + FB_triangle_zoff_csstore_amore_zless_tgeneral_white_perspective, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tgeneral_flat_untextured, + FB_triangle_zoff_csstore_amore_zless_tgeneral_flat_textured, + FB_triangle_zoff_csstore_amore_zless_tgeneral_flat_perspective, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_textured, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csstore_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tnearest_white_untextured, + FB_triangle_zoff_csblend_anone_znone_tnearest_white_textured, + FB_triangle_zoff_csblend_anone_znone_tnearest_white_perspective, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tnearest_flat_untextured, + FB_triangle_zoff_csblend_anone_znone_tnearest_flat_textured, + FB_triangle_zoff_csblend_anone_znone_tnearest_flat_perspective, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_untextured, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_textured, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_perspective, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tmipmap_white_untextured, + FB_triangle_zoff_csblend_anone_znone_tmipmap_white_textured, + FB_triangle_zoff_csblend_anone_znone_tmipmap_white_perspective, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tmipmap_flat_untextured, + FB_triangle_zoff_csblend_anone_znone_tmipmap_flat_textured, + FB_triangle_zoff_csblend_anone_znone_tmipmap_flat_perspective, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_textured, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tgeneral_white_untextured, + FB_triangle_zoff_csblend_anone_znone_tgeneral_white_textured, + FB_triangle_zoff_csblend_anone_znone_tgeneral_white_perspective, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tgeneral_flat_untextured, + FB_triangle_zoff_csblend_anone_znone_tgeneral_flat_textured, + FB_triangle_zoff_csblend_anone_znone_tgeneral_flat_perspective, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_textured, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_anone_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tnearest_white_untextured, + FB_triangle_zoff_csblend_anone_zless_tnearest_white_textured, + FB_triangle_zoff_csblend_anone_zless_tnearest_white_perspective, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tnearest_flat_untextured, + FB_triangle_zoff_csblend_anone_zless_tnearest_flat_textured, + FB_triangle_zoff_csblend_anone_zless_tnearest_flat_perspective, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_untextured, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_textured, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_perspective, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tmipmap_white_untextured, + FB_triangle_zoff_csblend_anone_zless_tmipmap_white_textured, + FB_triangle_zoff_csblend_anone_zless_tmipmap_white_perspective, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tmipmap_flat_untextured, + FB_triangle_zoff_csblend_anone_zless_tmipmap_flat_textured, + FB_triangle_zoff_csblend_anone_zless_tmipmap_flat_perspective, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_textured, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tgeneral_white_untextured, + FB_triangle_zoff_csblend_anone_zless_tgeneral_white_textured, + FB_triangle_zoff_csblend_anone_zless_tgeneral_white_perspective, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tgeneral_flat_untextured, + FB_triangle_zoff_csblend_anone_zless_tgeneral_flat_textured, + FB_triangle_zoff_csblend_anone_zless_tgeneral_flat_perspective, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_textured, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_anone_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tnearest_white_untextured, + FB_triangle_zoff_csblend_aless_znone_tnearest_white_textured, + FB_triangle_zoff_csblend_aless_znone_tnearest_white_perspective, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tnearest_flat_untextured, + FB_triangle_zoff_csblend_aless_znone_tnearest_flat_textured, + FB_triangle_zoff_csblend_aless_znone_tnearest_flat_perspective, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_untextured, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_textured, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_perspective, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tmipmap_white_untextured, + FB_triangle_zoff_csblend_aless_znone_tmipmap_white_textured, + FB_triangle_zoff_csblend_aless_znone_tmipmap_white_perspective, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tmipmap_flat_untextured, + FB_triangle_zoff_csblend_aless_znone_tmipmap_flat_textured, + FB_triangle_zoff_csblend_aless_znone_tmipmap_flat_perspective, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_textured, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tgeneral_white_untextured, + FB_triangle_zoff_csblend_aless_znone_tgeneral_white_textured, + FB_triangle_zoff_csblend_aless_znone_tgeneral_white_perspective, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tgeneral_flat_untextured, + FB_triangle_zoff_csblend_aless_znone_tgeneral_flat_textured, + FB_triangle_zoff_csblend_aless_znone_tgeneral_flat_perspective, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_textured, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_aless_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tnearest_white_untextured, + FB_triangle_zoff_csblend_aless_zless_tnearest_white_textured, + FB_triangle_zoff_csblend_aless_zless_tnearest_white_perspective, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tnearest_flat_untextured, + FB_triangle_zoff_csblend_aless_zless_tnearest_flat_textured, + FB_triangle_zoff_csblend_aless_zless_tnearest_flat_perspective, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_untextured, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_textured, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_perspective, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tmipmap_white_untextured, + FB_triangle_zoff_csblend_aless_zless_tmipmap_white_textured, + FB_triangle_zoff_csblend_aless_zless_tmipmap_white_perspective, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tmipmap_flat_untextured, + FB_triangle_zoff_csblend_aless_zless_tmipmap_flat_textured, + FB_triangle_zoff_csblend_aless_zless_tmipmap_flat_perspective, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_textured, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tgeneral_white_untextured, + FB_triangle_zoff_csblend_aless_zless_tgeneral_white_textured, + FB_triangle_zoff_csblend_aless_zless_tgeneral_white_perspective, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tgeneral_flat_untextured, + FB_triangle_zoff_csblend_aless_zless_tgeneral_flat_textured, + FB_triangle_zoff_csblend_aless_zless_tgeneral_flat_perspective, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_textured, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_aless_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tnearest_white_untextured, + FB_triangle_zoff_csblend_amore_znone_tnearest_white_textured, + FB_triangle_zoff_csblend_amore_znone_tnearest_white_perspective, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tnearest_flat_untextured, + FB_triangle_zoff_csblend_amore_znone_tnearest_flat_textured, + FB_triangle_zoff_csblend_amore_znone_tnearest_flat_perspective, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_untextured, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_textured, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_perspective, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tmipmap_white_untextured, + FB_triangle_zoff_csblend_amore_znone_tmipmap_white_textured, + FB_triangle_zoff_csblend_amore_znone_tmipmap_white_perspective, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tmipmap_flat_untextured, + FB_triangle_zoff_csblend_amore_znone_tmipmap_flat_textured, + FB_triangle_zoff_csblend_amore_znone_tmipmap_flat_perspective, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_untextured, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_textured, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_perspective, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tgeneral_white_untextured, + FB_triangle_zoff_csblend_amore_znone_tgeneral_white_textured, + FB_triangle_zoff_csblend_amore_znone_tgeneral_white_perspective, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tgeneral_flat_untextured, + FB_triangle_zoff_csblend_amore_znone_tgeneral_flat_textured, + FB_triangle_zoff_csblend_amore_znone_tgeneral_flat_perspective, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_untextured, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_textured, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_perspective, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_amore_znone_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tnearest_white_untextured, + FB_triangle_zoff_csblend_amore_zless_tnearest_white_textured, + FB_triangle_zoff_csblend_amore_zless_tnearest_white_perspective, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tnearest_flat_untextured, + FB_triangle_zoff_csblend_amore_zless_tnearest_flat_textured, + FB_triangle_zoff_csblend_amore_zless_tnearest_flat_perspective, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_untextured, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_textured, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_perspective, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tnearest_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tmipmap_white_untextured, + FB_triangle_zoff_csblend_amore_zless_tmipmap_white_textured, + FB_triangle_zoff_csblend_amore_zless_tmipmap_white_perspective, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tmipmap_flat_untextured, + FB_triangle_zoff_csblend_amore_zless_tmipmap_flat_textured, + FB_triangle_zoff_csblend_amore_zless_tmipmap_flat_perspective, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_untextured, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_textured, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_perspective, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tmipmap_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tgeneral_white_untextured, + FB_triangle_zoff_csblend_amore_zless_tgeneral_white_textured, + FB_triangle_zoff_csblend_amore_zless_tgeneral_white_perspective, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tgeneral_flat_untextured, + FB_triangle_zoff_csblend_amore_zless_tgeneral_flat_textured, + FB_triangle_zoff_csblend_amore_zless_tgeneral_flat_perspective, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex3, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_untextured, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_textured, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_perspective, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex2, + FB_triangle_zoff_csblend_amore_zless_tgeneral_smooth_multitex3, }; diff --git a/panda/src/tinydisplay/ztriangle_table.cxx b/panda/src/tinydisplay/ztriangle_table.cxx index 6751e62e83..822815decf 100644 --- a/panda/src/tinydisplay/ztriangle_table.cxx +++ b/panda/src/tinydisplay/ztriangle_table.cxx @@ -9,7 +9,7 @@ extern ZB_fillTriangleFunc ztriangle_code_2[]; extern ZB_fillTriangleFunc ztriangle_code_3[]; extern ZB_fillTriangleFunc ztriangle_code_4[]; -const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5] = { +const ZB_fillTriangleFunc fill_tri_funcs[2][6][3][2][3][3][5] = { { { { @@ -879,6 +879,440 @@ const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5] = { } } }, + { + { + { + { + { + ztriangle_code_1[540], + ztriangle_code_1[541], + ztriangle_code_1[542], + ztriangle_code_1[553], + ztriangle_code_1[554] + }, + { + ztriangle_code_1[545], + ztriangle_code_1[546], + ztriangle_code_1[547], + ztriangle_code_1[553], + ztriangle_code_1[554] + }, + { + ztriangle_code_1[550], + ztriangle_code_1[551], + ztriangle_code_1[552], + ztriangle_code_1[553], + ztriangle_code_1[554] + } + }, + { + { + ztriangle_code_1[555], + ztriangle_code_1[556], + ztriangle_code_1[557], + ztriangle_code_1[568], + ztriangle_code_1[569] + }, + { + ztriangle_code_1[560], + ztriangle_code_1[561], + ztriangle_code_1[562], + ztriangle_code_1[568], + ztriangle_code_1[569] + }, + { + ztriangle_code_1[565], + ztriangle_code_1[566], + ztriangle_code_1[567], + ztriangle_code_1[568], + ztriangle_code_1[569] + } + }, + { + { + ztriangle_code_1[570], + ztriangle_code_1[571], + ztriangle_code_1[572], + ztriangle_code_1[583], + ztriangle_code_1[584] + }, + { + ztriangle_code_1[575], + ztriangle_code_1[576], + ztriangle_code_1[577], + ztriangle_code_1[583], + ztriangle_code_1[584] + }, + { + ztriangle_code_1[580], + ztriangle_code_1[581], + ztriangle_code_1[582], + ztriangle_code_1[583], + ztriangle_code_1[584] + } + } + }, + { + { + { + ztriangle_code_1[585], + ztriangle_code_1[586], + ztriangle_code_1[587], + ztriangle_code_1[598], + ztriangle_code_1[599] + }, + { + ztriangle_code_1[590], + ztriangle_code_1[591], + ztriangle_code_1[592], + ztriangle_code_1[598], + ztriangle_code_1[599] + }, + { + ztriangle_code_1[595], + ztriangle_code_1[596], + ztriangle_code_1[597], + ztriangle_code_1[598], + ztriangle_code_1[599] + } + }, + { + { + ztriangle_code_1[600], + ztriangle_code_1[601], + ztriangle_code_1[602], + ztriangle_code_1[613], + ztriangle_code_1[614] + }, + { + ztriangle_code_1[605], + ztriangle_code_1[606], + ztriangle_code_1[607], + ztriangle_code_1[613], + ztriangle_code_1[614] + }, + { + ztriangle_code_1[610], + ztriangle_code_1[611], + ztriangle_code_1[612], + ztriangle_code_1[613], + ztriangle_code_1[614] + } + }, + { + { + ztriangle_code_1[615], + ztriangle_code_1[616], + ztriangle_code_1[617], + ztriangle_code_1[628], + ztriangle_code_1[629] + }, + { + ztriangle_code_1[620], + ztriangle_code_1[621], + ztriangle_code_1[622], + ztriangle_code_1[628], + ztriangle_code_1[629] + }, + { + ztriangle_code_1[625], + ztriangle_code_1[626], + ztriangle_code_1[627], + ztriangle_code_1[628], + ztriangle_code_1[629] + } + } + } + }, + { + { + { + { + ztriangle_code_1[630], + ztriangle_code_1[631], + ztriangle_code_1[632], + ztriangle_code_1[643], + ztriangle_code_1[644] + }, + { + ztriangle_code_1[635], + ztriangle_code_1[636], + ztriangle_code_1[637], + ztriangle_code_1[643], + ztriangle_code_1[644] + }, + { + ztriangle_code_1[640], + ztriangle_code_1[641], + ztriangle_code_1[642], + ztriangle_code_1[643], + ztriangle_code_1[644] + } + }, + { + { + ztriangle_code_1[645], + ztriangle_code_1[646], + ztriangle_code_1[647], + ztriangle_code_1[658], + ztriangle_code_1[659] + }, + { + ztriangle_code_1[650], + ztriangle_code_1[651], + ztriangle_code_1[652], + ztriangle_code_1[658], + ztriangle_code_1[659] + }, + { + ztriangle_code_1[655], + ztriangle_code_1[656], + ztriangle_code_1[657], + ztriangle_code_1[658], + ztriangle_code_1[659] + } + }, + { + { + ztriangle_code_1[660], + ztriangle_code_1[661], + ztriangle_code_1[662], + ztriangle_code_1[673], + ztriangle_code_1[674] + }, + { + ztriangle_code_1[665], + ztriangle_code_1[666], + ztriangle_code_1[667], + ztriangle_code_1[673], + ztriangle_code_1[674] + }, + { + ztriangle_code_1[670], + ztriangle_code_1[671], + ztriangle_code_1[672], + ztriangle_code_1[673], + ztriangle_code_1[674] + } + } + }, + { + { + { + ztriangle_code_1[675], + ztriangle_code_1[676], + ztriangle_code_1[677], + ztriangle_code_1[688], + ztriangle_code_1[689] + }, + { + ztriangle_code_1[680], + ztriangle_code_1[681], + ztriangle_code_1[682], + ztriangle_code_1[688], + ztriangle_code_1[689] + }, + { + ztriangle_code_1[685], + ztriangle_code_1[686], + ztriangle_code_1[687], + ztriangle_code_1[688], + ztriangle_code_1[689] + } + }, + { + { + ztriangle_code_1[690], + ztriangle_code_1[691], + ztriangle_code_1[692], + ztriangle_code_1[703], + ztriangle_code_1[704] + }, + { + ztriangle_code_1[695], + ztriangle_code_1[696], + ztriangle_code_1[697], + ztriangle_code_1[703], + ztriangle_code_1[704] + }, + { + ztriangle_code_1[700], + ztriangle_code_1[701], + ztriangle_code_1[702], + ztriangle_code_1[703], + ztriangle_code_1[704] + } + }, + { + { + ztriangle_code_1[705], + ztriangle_code_1[706], + ztriangle_code_1[707], + ztriangle_code_1[718], + ztriangle_code_1[719] + }, + { + ztriangle_code_1[710], + ztriangle_code_1[711], + ztriangle_code_1[712], + ztriangle_code_1[718], + ztriangle_code_1[719] + }, + { + ztriangle_code_1[715], + ztriangle_code_1[716], + ztriangle_code_1[717], + ztriangle_code_1[718], + ztriangle_code_1[719] + } + } + } + }, + { + { + { + { + ztriangle_code_1[720], + ztriangle_code_1[721], + ztriangle_code_1[722], + ztriangle_code_1[733], + ztriangle_code_1[734] + }, + { + ztriangle_code_1[725], + ztriangle_code_1[726], + ztriangle_code_1[727], + ztriangle_code_1[733], + ztriangle_code_1[734] + }, + { + ztriangle_code_1[730], + ztriangle_code_1[731], + ztriangle_code_1[732], + ztriangle_code_1[733], + ztriangle_code_1[734] + } + }, + { + { + ztriangle_code_1[735], + ztriangle_code_1[736], + ztriangle_code_1[737], + ztriangle_code_1[748], + ztriangle_code_1[749] + }, + { + ztriangle_code_1[740], + ztriangle_code_1[741], + ztriangle_code_1[742], + ztriangle_code_1[748], + ztriangle_code_1[749] + }, + { + ztriangle_code_1[745], + ztriangle_code_1[746], + ztriangle_code_1[747], + ztriangle_code_1[748], + ztriangle_code_1[749] + } + }, + { + { + ztriangle_code_1[750], + ztriangle_code_1[751], + ztriangle_code_1[752], + ztriangle_code_1[763], + ztriangle_code_1[764] + }, + { + ztriangle_code_1[755], + ztriangle_code_1[756], + ztriangle_code_1[757], + ztriangle_code_1[763], + ztriangle_code_1[764] + }, + { + ztriangle_code_1[760], + ztriangle_code_1[761], + ztriangle_code_1[762], + ztriangle_code_1[763], + ztriangle_code_1[764] + } + } + }, + { + { + { + ztriangle_code_1[765], + ztriangle_code_1[766], + ztriangle_code_1[767], + ztriangle_code_1[778], + ztriangle_code_1[779] + }, + { + ztriangle_code_1[770], + ztriangle_code_1[771], + ztriangle_code_1[772], + ztriangle_code_1[778], + ztriangle_code_1[779] + }, + { + ztriangle_code_1[775], + ztriangle_code_1[776], + ztriangle_code_1[777], + ztriangle_code_1[778], + ztriangle_code_1[779] + } + }, + { + { + ztriangle_code_1[780], + ztriangle_code_1[781], + ztriangle_code_1[782], + ztriangle_code_1[793], + ztriangle_code_1[794] + }, + { + ztriangle_code_1[785], + ztriangle_code_1[786], + ztriangle_code_1[787], + ztriangle_code_1[793], + ztriangle_code_1[794] + }, + { + ztriangle_code_1[790], + ztriangle_code_1[791], + ztriangle_code_1[792], + ztriangle_code_1[793], + ztriangle_code_1[794] + } + }, + { + { + ztriangle_code_1[795], + ztriangle_code_1[796], + ztriangle_code_1[797], + ztriangle_code_1[808], + ztriangle_code_1[809] + }, + { + ztriangle_code_1[800], + ztriangle_code_1[801], + ztriangle_code_1[802], + ztriangle_code_1[808], + ztriangle_code_1[809] + }, + { + ztriangle_code_1[805], + ztriangle_code_1[806], + ztriangle_code_1[807], + ztriangle_code_1[808], + ztriangle_code_1[809] + } + } + } + } + }, { { { @@ -1746,6 +2180,440 @@ const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5] = { } } } + }, + { + { + { + { + { + ztriangle_code_2[540], + ztriangle_code_2[541], + ztriangle_code_2[542], + ztriangle_code_2[553], + ztriangle_code_2[554] + }, + { + ztriangle_code_2[545], + ztriangle_code_2[546], + ztriangle_code_2[547], + ztriangle_code_2[553], + ztriangle_code_2[554] + }, + { + ztriangle_code_2[550], + ztriangle_code_2[551], + ztriangle_code_2[552], + ztriangle_code_2[553], + ztriangle_code_2[554] + } + }, + { + { + ztriangle_code_2[555], + ztriangle_code_2[556], + ztriangle_code_2[557], + ztriangle_code_2[568], + ztriangle_code_2[569] + }, + { + ztriangle_code_2[560], + ztriangle_code_2[561], + ztriangle_code_2[562], + ztriangle_code_2[568], + ztriangle_code_2[569] + }, + { + ztriangle_code_2[565], + ztriangle_code_2[566], + ztriangle_code_2[567], + ztriangle_code_2[568], + ztriangle_code_2[569] + } + }, + { + { + ztriangle_code_2[570], + ztriangle_code_2[571], + ztriangle_code_2[572], + ztriangle_code_2[583], + ztriangle_code_2[584] + }, + { + ztriangle_code_2[575], + ztriangle_code_2[576], + ztriangle_code_2[577], + ztriangle_code_2[583], + ztriangle_code_2[584] + }, + { + ztriangle_code_2[580], + ztriangle_code_2[581], + ztriangle_code_2[582], + ztriangle_code_2[583], + ztriangle_code_2[584] + } + } + }, + { + { + { + ztriangle_code_2[585], + ztriangle_code_2[586], + ztriangle_code_2[587], + ztriangle_code_2[598], + ztriangle_code_2[599] + }, + { + ztriangle_code_2[590], + ztriangle_code_2[591], + ztriangle_code_2[592], + ztriangle_code_2[598], + ztriangle_code_2[599] + }, + { + ztriangle_code_2[595], + ztriangle_code_2[596], + ztriangle_code_2[597], + ztriangle_code_2[598], + ztriangle_code_2[599] + } + }, + { + { + ztriangle_code_2[600], + ztriangle_code_2[601], + ztriangle_code_2[602], + ztriangle_code_2[613], + ztriangle_code_2[614] + }, + { + ztriangle_code_2[605], + ztriangle_code_2[606], + ztriangle_code_2[607], + ztriangle_code_2[613], + ztriangle_code_2[614] + }, + { + ztriangle_code_2[610], + ztriangle_code_2[611], + ztriangle_code_2[612], + ztriangle_code_2[613], + ztriangle_code_2[614] + } + }, + { + { + ztriangle_code_2[615], + ztriangle_code_2[616], + ztriangle_code_2[617], + ztriangle_code_2[628], + ztriangle_code_2[629] + }, + { + ztriangle_code_2[620], + ztriangle_code_2[621], + ztriangle_code_2[622], + ztriangle_code_2[628], + ztriangle_code_2[629] + }, + { + ztriangle_code_2[625], + ztriangle_code_2[626], + ztriangle_code_2[627], + ztriangle_code_2[628], + ztriangle_code_2[629] + } + } + } + }, + { + { + { + { + ztriangle_code_2[630], + ztriangle_code_2[631], + ztriangle_code_2[632], + ztriangle_code_2[643], + ztriangle_code_2[644] + }, + { + ztriangle_code_2[635], + ztriangle_code_2[636], + ztriangle_code_2[637], + ztriangle_code_2[643], + ztriangle_code_2[644] + }, + { + ztriangle_code_2[640], + ztriangle_code_2[641], + ztriangle_code_2[642], + ztriangle_code_2[643], + ztriangle_code_2[644] + } + }, + { + { + ztriangle_code_2[645], + ztriangle_code_2[646], + ztriangle_code_2[647], + ztriangle_code_2[658], + ztriangle_code_2[659] + }, + { + ztriangle_code_2[650], + ztriangle_code_2[651], + ztriangle_code_2[652], + ztriangle_code_2[658], + ztriangle_code_2[659] + }, + { + ztriangle_code_2[655], + ztriangle_code_2[656], + ztriangle_code_2[657], + ztriangle_code_2[658], + ztriangle_code_2[659] + } + }, + { + { + ztriangle_code_2[660], + ztriangle_code_2[661], + ztriangle_code_2[662], + ztriangle_code_2[673], + ztriangle_code_2[674] + }, + { + ztriangle_code_2[665], + ztriangle_code_2[666], + ztriangle_code_2[667], + ztriangle_code_2[673], + ztriangle_code_2[674] + }, + { + ztriangle_code_2[670], + ztriangle_code_2[671], + ztriangle_code_2[672], + ztriangle_code_2[673], + ztriangle_code_2[674] + } + } + }, + { + { + { + ztriangle_code_2[675], + ztriangle_code_2[676], + ztriangle_code_2[677], + ztriangle_code_2[688], + ztriangle_code_2[689] + }, + { + ztriangle_code_2[680], + ztriangle_code_2[681], + ztriangle_code_2[682], + ztriangle_code_2[688], + ztriangle_code_2[689] + }, + { + ztriangle_code_2[685], + ztriangle_code_2[686], + ztriangle_code_2[687], + ztriangle_code_2[688], + ztriangle_code_2[689] + } + }, + { + { + ztriangle_code_2[690], + ztriangle_code_2[691], + ztriangle_code_2[692], + ztriangle_code_2[703], + ztriangle_code_2[704] + }, + { + ztriangle_code_2[695], + ztriangle_code_2[696], + ztriangle_code_2[697], + ztriangle_code_2[703], + ztriangle_code_2[704] + }, + { + ztriangle_code_2[700], + ztriangle_code_2[701], + ztriangle_code_2[702], + ztriangle_code_2[703], + ztriangle_code_2[704] + } + }, + { + { + ztriangle_code_2[705], + ztriangle_code_2[706], + ztriangle_code_2[707], + ztriangle_code_2[718], + ztriangle_code_2[719] + }, + { + ztriangle_code_2[710], + ztriangle_code_2[711], + ztriangle_code_2[712], + ztriangle_code_2[718], + ztriangle_code_2[719] + }, + { + ztriangle_code_2[715], + ztriangle_code_2[716], + ztriangle_code_2[717], + ztriangle_code_2[718], + ztriangle_code_2[719] + } + } + } + }, + { + { + { + { + ztriangle_code_2[720], + ztriangle_code_2[721], + ztriangle_code_2[722], + ztriangle_code_2[733], + ztriangle_code_2[734] + }, + { + ztriangle_code_2[725], + ztriangle_code_2[726], + ztriangle_code_2[727], + ztriangle_code_2[733], + ztriangle_code_2[734] + }, + { + ztriangle_code_2[730], + ztriangle_code_2[731], + ztriangle_code_2[732], + ztriangle_code_2[733], + ztriangle_code_2[734] + } + }, + { + { + ztriangle_code_2[735], + ztriangle_code_2[736], + ztriangle_code_2[737], + ztriangle_code_2[748], + ztriangle_code_2[749] + }, + { + ztriangle_code_2[740], + ztriangle_code_2[741], + ztriangle_code_2[742], + ztriangle_code_2[748], + ztriangle_code_2[749] + }, + { + ztriangle_code_2[745], + ztriangle_code_2[746], + ztriangle_code_2[747], + ztriangle_code_2[748], + ztriangle_code_2[749] + } + }, + { + { + ztriangle_code_2[750], + ztriangle_code_2[751], + ztriangle_code_2[752], + ztriangle_code_2[763], + ztriangle_code_2[764] + }, + { + ztriangle_code_2[755], + ztriangle_code_2[756], + ztriangle_code_2[757], + ztriangle_code_2[763], + ztriangle_code_2[764] + }, + { + ztriangle_code_2[760], + ztriangle_code_2[761], + ztriangle_code_2[762], + ztriangle_code_2[763], + ztriangle_code_2[764] + } + } + }, + { + { + { + ztriangle_code_2[765], + ztriangle_code_2[766], + ztriangle_code_2[767], + ztriangle_code_2[778], + ztriangle_code_2[779] + }, + { + ztriangle_code_2[770], + ztriangle_code_2[771], + ztriangle_code_2[772], + ztriangle_code_2[778], + ztriangle_code_2[779] + }, + { + ztriangle_code_2[775], + ztriangle_code_2[776], + ztriangle_code_2[777], + ztriangle_code_2[778], + ztriangle_code_2[779] + } + }, + { + { + ztriangle_code_2[780], + ztriangle_code_2[781], + ztriangle_code_2[782], + ztriangle_code_2[793], + ztriangle_code_2[794] + }, + { + ztriangle_code_2[785], + ztriangle_code_2[786], + ztriangle_code_2[787], + ztriangle_code_2[793], + ztriangle_code_2[794] + }, + { + ztriangle_code_2[790], + ztriangle_code_2[791], + ztriangle_code_2[792], + ztriangle_code_2[793], + ztriangle_code_2[794] + } + }, + { + { + ztriangle_code_2[795], + ztriangle_code_2[796], + ztriangle_code_2[797], + ztriangle_code_2[808], + ztriangle_code_2[809] + }, + { + ztriangle_code_2[800], + ztriangle_code_2[801], + ztriangle_code_2[802], + ztriangle_code_2[808], + ztriangle_code_2[809] + }, + { + ztriangle_code_2[805], + ztriangle_code_2[806], + ztriangle_code_2[807], + ztriangle_code_2[808], + ztriangle_code_2[809] + } + } + } + } } }, { @@ -2617,6 +3485,440 @@ const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5] = { } } }, + { + { + { + { + { + ztriangle_code_3[540], + ztriangle_code_3[541], + ztriangle_code_3[542], + ztriangle_code_3[553], + ztriangle_code_3[554] + }, + { + ztriangle_code_3[545], + ztriangle_code_3[546], + ztriangle_code_3[547], + ztriangle_code_3[553], + ztriangle_code_3[554] + }, + { + ztriangle_code_3[550], + ztriangle_code_3[551], + ztriangle_code_3[552], + ztriangle_code_3[553], + ztriangle_code_3[554] + } + }, + { + { + ztriangle_code_3[555], + ztriangle_code_3[556], + ztriangle_code_3[557], + ztriangle_code_3[568], + ztriangle_code_3[569] + }, + { + ztriangle_code_3[560], + ztriangle_code_3[561], + ztriangle_code_3[562], + ztriangle_code_3[568], + ztriangle_code_3[569] + }, + { + ztriangle_code_3[565], + ztriangle_code_3[566], + ztriangle_code_3[567], + ztriangle_code_3[568], + ztriangle_code_3[569] + } + }, + { + { + ztriangle_code_3[570], + ztriangle_code_3[571], + ztriangle_code_3[572], + ztriangle_code_3[583], + ztriangle_code_3[584] + }, + { + ztriangle_code_3[575], + ztriangle_code_3[576], + ztriangle_code_3[577], + ztriangle_code_3[583], + ztriangle_code_3[584] + }, + { + ztriangle_code_3[580], + ztriangle_code_3[581], + ztriangle_code_3[582], + ztriangle_code_3[583], + ztriangle_code_3[584] + } + } + }, + { + { + { + ztriangle_code_3[585], + ztriangle_code_3[586], + ztriangle_code_3[587], + ztriangle_code_3[598], + ztriangle_code_3[599] + }, + { + ztriangle_code_3[590], + ztriangle_code_3[591], + ztriangle_code_3[592], + ztriangle_code_3[598], + ztriangle_code_3[599] + }, + { + ztriangle_code_3[595], + ztriangle_code_3[596], + ztriangle_code_3[597], + ztriangle_code_3[598], + ztriangle_code_3[599] + } + }, + { + { + ztriangle_code_3[600], + ztriangle_code_3[601], + ztriangle_code_3[602], + ztriangle_code_3[613], + ztriangle_code_3[614] + }, + { + ztriangle_code_3[605], + ztriangle_code_3[606], + ztriangle_code_3[607], + ztriangle_code_3[613], + ztriangle_code_3[614] + }, + { + ztriangle_code_3[610], + ztriangle_code_3[611], + ztriangle_code_3[612], + ztriangle_code_3[613], + ztriangle_code_3[614] + } + }, + { + { + ztriangle_code_3[615], + ztriangle_code_3[616], + ztriangle_code_3[617], + ztriangle_code_3[628], + ztriangle_code_3[629] + }, + { + ztriangle_code_3[620], + ztriangle_code_3[621], + ztriangle_code_3[622], + ztriangle_code_3[628], + ztriangle_code_3[629] + }, + { + ztriangle_code_3[625], + ztriangle_code_3[626], + ztriangle_code_3[627], + ztriangle_code_3[628], + ztriangle_code_3[629] + } + } + } + }, + { + { + { + { + ztriangle_code_3[630], + ztriangle_code_3[631], + ztriangle_code_3[632], + ztriangle_code_3[643], + ztriangle_code_3[644] + }, + { + ztriangle_code_3[635], + ztriangle_code_3[636], + ztriangle_code_3[637], + ztriangle_code_3[643], + ztriangle_code_3[644] + }, + { + ztriangle_code_3[640], + ztriangle_code_3[641], + ztriangle_code_3[642], + ztriangle_code_3[643], + ztriangle_code_3[644] + } + }, + { + { + ztriangle_code_3[645], + ztriangle_code_3[646], + ztriangle_code_3[647], + ztriangle_code_3[658], + ztriangle_code_3[659] + }, + { + ztriangle_code_3[650], + ztriangle_code_3[651], + ztriangle_code_3[652], + ztriangle_code_3[658], + ztriangle_code_3[659] + }, + { + ztriangle_code_3[655], + ztriangle_code_3[656], + ztriangle_code_3[657], + ztriangle_code_3[658], + ztriangle_code_3[659] + } + }, + { + { + ztriangle_code_3[660], + ztriangle_code_3[661], + ztriangle_code_3[662], + ztriangle_code_3[673], + ztriangle_code_3[674] + }, + { + ztriangle_code_3[665], + ztriangle_code_3[666], + ztriangle_code_3[667], + ztriangle_code_3[673], + ztriangle_code_3[674] + }, + { + ztriangle_code_3[670], + ztriangle_code_3[671], + ztriangle_code_3[672], + ztriangle_code_3[673], + ztriangle_code_3[674] + } + } + }, + { + { + { + ztriangle_code_3[675], + ztriangle_code_3[676], + ztriangle_code_3[677], + ztriangle_code_3[688], + ztriangle_code_3[689] + }, + { + ztriangle_code_3[680], + ztriangle_code_3[681], + ztriangle_code_3[682], + ztriangle_code_3[688], + ztriangle_code_3[689] + }, + { + ztriangle_code_3[685], + ztriangle_code_3[686], + ztriangle_code_3[687], + ztriangle_code_3[688], + ztriangle_code_3[689] + } + }, + { + { + ztriangle_code_3[690], + ztriangle_code_3[691], + ztriangle_code_3[692], + ztriangle_code_3[703], + ztriangle_code_3[704] + }, + { + ztriangle_code_3[695], + ztriangle_code_3[696], + ztriangle_code_3[697], + ztriangle_code_3[703], + ztriangle_code_3[704] + }, + { + ztriangle_code_3[700], + ztriangle_code_3[701], + ztriangle_code_3[702], + ztriangle_code_3[703], + ztriangle_code_3[704] + } + }, + { + { + ztriangle_code_3[705], + ztriangle_code_3[706], + ztriangle_code_3[707], + ztriangle_code_3[718], + ztriangle_code_3[719] + }, + { + ztriangle_code_3[710], + ztriangle_code_3[711], + ztriangle_code_3[712], + ztriangle_code_3[718], + ztriangle_code_3[719] + }, + { + ztriangle_code_3[715], + ztriangle_code_3[716], + ztriangle_code_3[717], + ztriangle_code_3[718], + ztriangle_code_3[719] + } + } + } + }, + { + { + { + { + ztriangle_code_3[720], + ztriangle_code_3[721], + ztriangle_code_3[722], + ztriangle_code_3[733], + ztriangle_code_3[734] + }, + { + ztriangle_code_3[725], + ztriangle_code_3[726], + ztriangle_code_3[727], + ztriangle_code_3[733], + ztriangle_code_3[734] + }, + { + ztriangle_code_3[730], + ztriangle_code_3[731], + ztriangle_code_3[732], + ztriangle_code_3[733], + ztriangle_code_3[734] + } + }, + { + { + ztriangle_code_3[735], + ztriangle_code_3[736], + ztriangle_code_3[737], + ztriangle_code_3[748], + ztriangle_code_3[749] + }, + { + ztriangle_code_3[740], + ztriangle_code_3[741], + ztriangle_code_3[742], + ztriangle_code_3[748], + ztriangle_code_3[749] + }, + { + ztriangle_code_3[745], + ztriangle_code_3[746], + ztriangle_code_3[747], + ztriangle_code_3[748], + ztriangle_code_3[749] + } + }, + { + { + ztriangle_code_3[750], + ztriangle_code_3[751], + ztriangle_code_3[752], + ztriangle_code_3[763], + ztriangle_code_3[764] + }, + { + ztriangle_code_3[755], + ztriangle_code_3[756], + ztriangle_code_3[757], + ztriangle_code_3[763], + ztriangle_code_3[764] + }, + { + ztriangle_code_3[760], + ztriangle_code_3[761], + ztriangle_code_3[762], + ztriangle_code_3[763], + ztriangle_code_3[764] + } + } + }, + { + { + { + ztriangle_code_3[765], + ztriangle_code_3[766], + ztriangle_code_3[767], + ztriangle_code_3[778], + ztriangle_code_3[779] + }, + { + ztriangle_code_3[770], + ztriangle_code_3[771], + ztriangle_code_3[772], + ztriangle_code_3[778], + ztriangle_code_3[779] + }, + { + ztriangle_code_3[775], + ztriangle_code_3[776], + ztriangle_code_3[777], + ztriangle_code_3[778], + ztriangle_code_3[779] + } + }, + { + { + ztriangle_code_3[780], + ztriangle_code_3[781], + ztriangle_code_3[782], + ztriangle_code_3[793], + ztriangle_code_3[794] + }, + { + ztriangle_code_3[785], + ztriangle_code_3[786], + ztriangle_code_3[787], + ztriangle_code_3[793], + ztriangle_code_3[794] + }, + { + ztriangle_code_3[790], + ztriangle_code_3[791], + ztriangle_code_3[792], + ztriangle_code_3[793], + ztriangle_code_3[794] + } + }, + { + { + ztriangle_code_3[795], + ztriangle_code_3[796], + ztriangle_code_3[797], + ztriangle_code_3[808], + ztriangle_code_3[809] + }, + { + ztriangle_code_3[800], + ztriangle_code_3[801], + ztriangle_code_3[802], + ztriangle_code_3[808], + ztriangle_code_3[809] + }, + { + ztriangle_code_3[805], + ztriangle_code_3[806], + ztriangle_code_3[807], + ztriangle_code_3[808], + ztriangle_code_3[809] + } + } + } + } + }, { { { @@ -3484,6 +4786,440 @@ const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5] = { } } } + }, + { + { + { + { + { + ztriangle_code_4[540], + ztriangle_code_4[541], + ztriangle_code_4[542], + ztriangle_code_4[553], + ztriangle_code_4[554] + }, + { + ztriangle_code_4[545], + ztriangle_code_4[546], + ztriangle_code_4[547], + ztriangle_code_4[553], + ztriangle_code_4[554] + }, + { + ztriangle_code_4[550], + ztriangle_code_4[551], + ztriangle_code_4[552], + ztriangle_code_4[553], + ztriangle_code_4[554] + } + }, + { + { + ztriangle_code_4[555], + ztriangle_code_4[556], + ztriangle_code_4[557], + ztriangle_code_4[568], + ztriangle_code_4[569] + }, + { + ztriangle_code_4[560], + ztriangle_code_4[561], + ztriangle_code_4[562], + ztriangle_code_4[568], + ztriangle_code_4[569] + }, + { + ztriangle_code_4[565], + ztriangle_code_4[566], + ztriangle_code_4[567], + ztriangle_code_4[568], + ztriangle_code_4[569] + } + }, + { + { + ztriangle_code_4[570], + ztriangle_code_4[571], + ztriangle_code_4[572], + ztriangle_code_4[583], + ztriangle_code_4[584] + }, + { + ztriangle_code_4[575], + ztriangle_code_4[576], + ztriangle_code_4[577], + ztriangle_code_4[583], + ztriangle_code_4[584] + }, + { + ztriangle_code_4[580], + ztriangle_code_4[581], + ztriangle_code_4[582], + ztriangle_code_4[583], + ztriangle_code_4[584] + } + } + }, + { + { + { + ztriangle_code_4[585], + ztriangle_code_4[586], + ztriangle_code_4[587], + ztriangle_code_4[598], + ztriangle_code_4[599] + }, + { + ztriangle_code_4[590], + ztriangle_code_4[591], + ztriangle_code_4[592], + ztriangle_code_4[598], + ztriangle_code_4[599] + }, + { + ztriangle_code_4[595], + ztriangle_code_4[596], + ztriangle_code_4[597], + ztriangle_code_4[598], + ztriangle_code_4[599] + } + }, + { + { + ztriangle_code_4[600], + ztriangle_code_4[601], + ztriangle_code_4[602], + ztriangle_code_4[613], + ztriangle_code_4[614] + }, + { + ztriangle_code_4[605], + ztriangle_code_4[606], + ztriangle_code_4[607], + ztriangle_code_4[613], + ztriangle_code_4[614] + }, + { + ztriangle_code_4[610], + ztriangle_code_4[611], + ztriangle_code_4[612], + ztriangle_code_4[613], + ztriangle_code_4[614] + } + }, + { + { + ztriangle_code_4[615], + ztriangle_code_4[616], + ztriangle_code_4[617], + ztriangle_code_4[628], + ztriangle_code_4[629] + }, + { + ztriangle_code_4[620], + ztriangle_code_4[621], + ztriangle_code_4[622], + ztriangle_code_4[628], + ztriangle_code_4[629] + }, + { + ztriangle_code_4[625], + ztriangle_code_4[626], + ztriangle_code_4[627], + ztriangle_code_4[628], + ztriangle_code_4[629] + } + } + } + }, + { + { + { + { + ztriangle_code_4[630], + ztriangle_code_4[631], + ztriangle_code_4[632], + ztriangle_code_4[643], + ztriangle_code_4[644] + }, + { + ztriangle_code_4[635], + ztriangle_code_4[636], + ztriangle_code_4[637], + ztriangle_code_4[643], + ztriangle_code_4[644] + }, + { + ztriangle_code_4[640], + ztriangle_code_4[641], + ztriangle_code_4[642], + ztriangle_code_4[643], + ztriangle_code_4[644] + } + }, + { + { + ztriangle_code_4[645], + ztriangle_code_4[646], + ztriangle_code_4[647], + ztriangle_code_4[658], + ztriangle_code_4[659] + }, + { + ztriangle_code_4[650], + ztriangle_code_4[651], + ztriangle_code_4[652], + ztriangle_code_4[658], + ztriangle_code_4[659] + }, + { + ztriangle_code_4[655], + ztriangle_code_4[656], + ztriangle_code_4[657], + ztriangle_code_4[658], + ztriangle_code_4[659] + } + }, + { + { + ztriangle_code_4[660], + ztriangle_code_4[661], + ztriangle_code_4[662], + ztriangle_code_4[673], + ztriangle_code_4[674] + }, + { + ztriangle_code_4[665], + ztriangle_code_4[666], + ztriangle_code_4[667], + ztriangle_code_4[673], + ztriangle_code_4[674] + }, + { + ztriangle_code_4[670], + ztriangle_code_4[671], + ztriangle_code_4[672], + ztriangle_code_4[673], + ztriangle_code_4[674] + } + } + }, + { + { + { + ztriangle_code_4[675], + ztriangle_code_4[676], + ztriangle_code_4[677], + ztriangle_code_4[688], + ztriangle_code_4[689] + }, + { + ztriangle_code_4[680], + ztriangle_code_4[681], + ztriangle_code_4[682], + ztriangle_code_4[688], + ztriangle_code_4[689] + }, + { + ztriangle_code_4[685], + ztriangle_code_4[686], + ztriangle_code_4[687], + ztriangle_code_4[688], + ztriangle_code_4[689] + } + }, + { + { + ztriangle_code_4[690], + ztriangle_code_4[691], + ztriangle_code_4[692], + ztriangle_code_4[703], + ztriangle_code_4[704] + }, + { + ztriangle_code_4[695], + ztriangle_code_4[696], + ztriangle_code_4[697], + ztriangle_code_4[703], + ztriangle_code_4[704] + }, + { + ztriangle_code_4[700], + ztriangle_code_4[701], + ztriangle_code_4[702], + ztriangle_code_4[703], + ztriangle_code_4[704] + } + }, + { + { + ztriangle_code_4[705], + ztriangle_code_4[706], + ztriangle_code_4[707], + ztriangle_code_4[718], + ztriangle_code_4[719] + }, + { + ztriangle_code_4[710], + ztriangle_code_4[711], + ztriangle_code_4[712], + ztriangle_code_4[718], + ztriangle_code_4[719] + }, + { + ztriangle_code_4[715], + ztriangle_code_4[716], + ztriangle_code_4[717], + ztriangle_code_4[718], + ztriangle_code_4[719] + } + } + } + }, + { + { + { + { + ztriangle_code_4[720], + ztriangle_code_4[721], + ztriangle_code_4[722], + ztriangle_code_4[733], + ztriangle_code_4[734] + }, + { + ztriangle_code_4[725], + ztriangle_code_4[726], + ztriangle_code_4[727], + ztriangle_code_4[733], + ztriangle_code_4[734] + }, + { + ztriangle_code_4[730], + ztriangle_code_4[731], + ztriangle_code_4[732], + ztriangle_code_4[733], + ztriangle_code_4[734] + } + }, + { + { + ztriangle_code_4[735], + ztriangle_code_4[736], + ztriangle_code_4[737], + ztriangle_code_4[748], + ztriangle_code_4[749] + }, + { + ztriangle_code_4[740], + ztriangle_code_4[741], + ztriangle_code_4[742], + ztriangle_code_4[748], + ztriangle_code_4[749] + }, + { + ztriangle_code_4[745], + ztriangle_code_4[746], + ztriangle_code_4[747], + ztriangle_code_4[748], + ztriangle_code_4[749] + } + }, + { + { + ztriangle_code_4[750], + ztriangle_code_4[751], + ztriangle_code_4[752], + ztriangle_code_4[763], + ztriangle_code_4[764] + }, + { + ztriangle_code_4[755], + ztriangle_code_4[756], + ztriangle_code_4[757], + ztriangle_code_4[763], + ztriangle_code_4[764] + }, + { + ztriangle_code_4[760], + ztriangle_code_4[761], + ztriangle_code_4[762], + ztriangle_code_4[763], + ztriangle_code_4[764] + } + } + }, + { + { + { + ztriangle_code_4[765], + ztriangle_code_4[766], + ztriangle_code_4[767], + ztriangle_code_4[778], + ztriangle_code_4[779] + }, + { + ztriangle_code_4[770], + ztriangle_code_4[771], + ztriangle_code_4[772], + ztriangle_code_4[778], + ztriangle_code_4[779] + }, + { + ztriangle_code_4[775], + ztriangle_code_4[776], + ztriangle_code_4[777], + ztriangle_code_4[778], + ztriangle_code_4[779] + } + }, + { + { + ztriangle_code_4[780], + ztriangle_code_4[781], + ztriangle_code_4[782], + ztriangle_code_4[793], + ztriangle_code_4[794] + }, + { + ztriangle_code_4[785], + ztriangle_code_4[786], + ztriangle_code_4[787], + ztriangle_code_4[793], + ztriangle_code_4[794] + }, + { + ztriangle_code_4[790], + ztriangle_code_4[791], + ztriangle_code_4[792], + ztriangle_code_4[793], + ztriangle_code_4[794] + } + }, + { + { + ztriangle_code_4[795], + ztriangle_code_4[796], + ztriangle_code_4[797], + ztriangle_code_4[808], + ztriangle_code_4[809] + }, + { + ztriangle_code_4[800], + ztriangle_code_4[801], + ztriangle_code_4[802], + ztriangle_code_4[808], + ztriangle_code_4[809] + }, + { + ztriangle_code_4[805], + ztriangle_code_4[806], + ztriangle_code_4[807], + ztriangle_code_4[808], + ztriangle_code_4[809] + } + } + } + } } } }; diff --git a/panda/src/tinydisplay/ztriangle_table.h b/panda/src/tinydisplay/ztriangle_table.h index 697e883372..6c8bd947f4 100755 --- a/panda/src/tinydisplay/ztriangle_table.h +++ b/panda/src/tinydisplay/ztriangle_table.h @@ -1,3 +1,3 @@ /* This file is generated code--do not edit. See ztriangle.py. */ -extern const ZB_fillTriangleFunc fill_tri_funcs[2][4][3][2][3][3][5]; +extern const ZB_fillTriangleFunc fill_tri_funcs[2][6][3][2][3][3][5]; From fbc3564bf9b6346de9c804aaf4a8b213999e2ba2 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 15:09:25 +0000 Subject: [PATCH 17/27] More work on Android port --- direct/src/showbase/PythonUtil.py | 70 ------- direct/src/showbase/ShowBase.py | 3 +- direct/src/showbase/VFSImporter.py | 9 +- dtool/src/dtoolutil/executionEnvironment.I | 20 ++ dtool/src/dtoolutil/executionEnvironment.cxx | 8 +- dtool/src/dtoolutil/executionEnvironment.h | 3 + dtool/src/dtoolutil/filename.cxx | 35 +++- dtool/src/dtoolutil/filename.h | 5 + panda/src/android/android_main.cxx | 32 ++- .../androiddisplay/androidGraphicsWindow.cxx | 13 +- .../express/virtualFileMountAndroidAsset.cxx | 2 +- panda/src/glesgsg/glesgsg.h | 1 + panda/src/glstuff/glGraphicsBuffer_src.cxx | 10 +- .../glstuff/glGraphicsStateGuardian_src.cxx | 185 ++++++++++-------- .../src/glstuff/glGraphicsStateGuardian_src.h | 4 + panda/src/glstuff/glTextureContext_src.cxx | 11 +- 16 files changed, 237 insertions(+), 174 deletions(-) diff --git a/direct/src/showbase/PythonUtil.py b/direct/src/showbase/PythonUtil.py index 1bcade4031..974ab34537 100644 --- a/direct/src/showbase/PythonUtil.py +++ b/direct/src/showbase/PythonUtil.py @@ -52,7 +52,6 @@ import __builtin__ from StringIO import StringIO import marshal import ElementTree as ET -from HTMLParser import HTMLParser import BpDb import unicodedata import bisect @@ -4201,75 +4200,6 @@ if __debug__ and __name__ == '__main__': assert unescapeHtmlString('as%32df') == 'as2df' assert unescapeHtmlString('asdf%32') == 'asdf2' -class HTMLStringToElements(HTMLParser): - def __init__(self, str, *a, **kw): - self._elements = [] - self._elementStack = Stack() - HTMLParser.__init__(self, *a, **kw) - self.feed(str) - self.close() - - def getElements(self): - return self._elements - - def _handleNewElement(self, element): - if len(self._elementStack): - self._elementStack.top().append(element) - else: - self._elements.append(element) - self._elementStack.push(element) - - def handle_starttag(self, tag, attrs): - kwArgs = {} - for name, value in attrs: - kwArgs[name] = value - el = ET.Element(tag, **kwArgs) - self._handleNewElement(el) - - def handle_data(self, data): - # this ignores text outside of a tag - if len(self._elementStack): - self._elementStack.top().text = data - - def handle_endtag(self, tag): - top = self._elementStack.top() - if len(top.getchildren()) == 0: - # insert a comment to prevent ElementTree from using <... /> convention - # force it to create a tag closer a la - # prevents problems in certain browsers - if top.tag == 'script' and top.get('type') == 'text/javascript': - if top.text == None: - top.text = '// force tag closer' - else: - self.handle_comment('force tag closer') - self._elementStack.pop() - self._elementStack.pop() - - def handle_comment(self, data): - comment = ET.Comment(data) - self._handleNewElement(comment) - -def str2elements(str): - return HTMLStringToElements(str).getElements() - -if __debug__ and __name__ == '__main__': - s = ScratchPad() - assert len(str2elements('')) == 0 - s.br = str2elements('
') - assert len(s.br) == 1 - assert s.br[0].tag == 'br' - s.b = str2elements('
') - assert len(s.b) == 1 - assert len(s.b[0].getchildren()) == 1 - s.a = str2elements('test') - assert len(s.a) == 1 - assert s.a[0].get('href') == '/' - assert s.a[0].text == 'test' - s.c = str2elements('') - assert len(s.c) == 1 - assert s.c[0].text == 'testComment' - del s - def repeatableRepr(obj): if type(obj) is types.DictType: keys = obj.keys() diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index a33b671dff..2612416ad8 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -7,7 +7,8 @@ __all__ = ['ShowBase', 'WindowControls'] # Annoying and very noisy, but sometimes useful #import VerboseImport -from pandac.PandaModules import * +from panda3d.core import * +from panda3d.direct import getConfigShowbase # This needs to be available early for DirectGUI imports import __builtin__ diff --git a/direct/src/showbase/VFSImporter.py b/direct/src/showbase/VFSImporter.py index 3bf8275cfc..b219992326 100644 --- a/direct/src/showbase/VFSImporter.py +++ b/direct/src/showbase/VFSImporter.py @@ -3,7 +3,6 @@ import sys import os import marshal import imp -import struct import types import __builtin__ @@ -286,7 +285,8 @@ class VFSLoader: code = None data = vfile.readFile(True) if data[:4] == imp.get_magic(): - t = struct.unpack('> 8) & 0xff) + + chr((self.timestamp >> 16) & 0xff) + + chr((self.timestamp >> 24) & 0xff)) f.write(marshal.dumps(code)) f.flush() f.seek(0, 0) diff --git a/dtool/src/dtoolutil/executionEnvironment.I b/dtool/src/dtoolutil/executionEnvironment.I index d55de11834..7c7fa57c33 100644 --- a/dtool/src/dtoolutil/executionEnvironment.I +++ b/dtool/src/dtoolutil/executionEnvironment.I @@ -119,3 +119,23 @@ INLINE string ExecutionEnvironment:: get_dtool_name() { return get_ptr()->ns_get_dtool_name(); } + +//////////////////////////////////////////////////////////////////// +// Function: ExecutionEnvironment::set_binary_name +// Access: Public, Static +// Description: Do not use. +//////////////////////////////////////////////////////////////////// +INLINE void ExecutionEnvironment:: +set_binary_name(const string &name) { + get_ptr()->_binary_name = name; +} + +//////////////////////////////////////////////////////////////////// +// Function: ExecutionEnvironment::set_dtool_name +// Access: Public, Static +// Description: Do not use. +//////////////////////////////////////////////////////////////////// +INLINE void ExecutionEnvironment:: +set_dtool_name(const string &name) { + get_ptr()->_dtool_name = name; +} diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index 81ca807d39..41e7aae64d 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -613,7 +613,7 @@ read_environment_variables() { //////////////////////////////////////////////////////////////////// void ExecutionEnvironment:: read_args() { - +#ifndef ANDROID // First, we need to fill in _dtool_name. This contains // the full path to the p3dtool library. @@ -835,7 +835,7 @@ read_args() { } #endif -#ifndef WIN32 +#ifndef _WIN32 // Try to use realpath to get cleaner paths. if (!_binary_name.empty()) { @@ -851,7 +851,9 @@ read_args() { _dtool_name = newpath; } } -#endif +#endif // _WIN32 + +#endif // ANDROID if (_dtool_name.empty()) { _dtool_name = _binary_name; diff --git a/dtool/src/dtoolutil/executionEnvironment.h b/dtool/src/dtoolutil/executionEnvironment.h index e43589b120..bfbb6adf44 100644 --- a/dtool/src/dtoolutil/executionEnvironment.h +++ b/dtool/src/dtoolutil/executionEnvironment.h @@ -50,6 +50,9 @@ PUBLISHED: INLINE static string get_binary_name(); INLINE static string get_dtool_name(); + INLINE static void set_binary_name(const string &name); + INLINE static void set_dtool_name(const string &name); + static Filename get_cwd(); private: diff --git a/dtool/src/dtoolutil/filename.cxx b/dtool/src/dtoolutil/filename.cxx index b7d7c51e53..d2aed13b7e 100644 --- a/dtool/src/dtoolutil/filename.cxx +++ b/dtool/src/dtoolutil/filename.cxx @@ -57,6 +57,10 @@ TVOLATILE AtomicAdjust::Pointer Filename::_user_appdata_directory; TVOLATILE AtomicAdjust::Pointer Filename::_common_appdata_directory; TypeHandle Filename::_type_handle; +#ifdef ANDROID +string Filename::_internal_data_dir; +#endif + #ifdef WIN32 /* begin Win32-specific code */ @@ -459,7 +463,7 @@ Filename Filename:: temporary(const string &dirname, const string &prefix, const string &suffix, Type type) { Filename fdirname = dirname; -#ifdef WIN32 +#if defined(_WIN32) || defined(ANDROID) // The Windows tempnam() function doesn't do a good job of choosing // a temporary directory. Choose one ourselves. if (fdirname.empty()) { @@ -523,7 +527,7 @@ get_home_directory() { if (home_directory.empty()) { #ifdef WIN32 wchar_t buffer[MAX_PATH]; - + // On Windows, fall back to the "My Documents" folder. if (SHGetSpecialFolderPathW(NULL, buffer, CSIDL_PERSONAL, true)) { Filename dirname = from_os_specific_w(buffer); @@ -534,15 +538,22 @@ get_home_directory() { } } +#elif defined(ANDROID) + // Temporary hack. + home_directory = "/data/data/org.panda3d.sdk"; + #elif defined(IS_OSX) home_directory = get_osx_home_directory(); - + +#elif defined(ANDROID) + home_directory = _internal_data_dir; + #else // Posix case: check /etc/passwd? - + #endif // WIN32 } - + if (home_directory.empty()) { // Fallback case. home_directory = ExecutionEnvironment::get_cwd(); @@ -555,7 +566,7 @@ get_home_directory() { delete newdir; } } - + return (*(Filename *)_home_directory); } @@ -585,6 +596,10 @@ get_temp_directory() { #elif defined(IS_OSX) temp_directory = get_osx_temp_directory(); +#elif defined(ANDROID) + temp_directory.set_dirname(_internal_data_dir); + temp_directory.set_basename("cache"); + #else // Posix case. temp_directory = "/tmp"; @@ -634,6 +649,10 @@ get_user_appdata_directory() { #elif defined(IS_OSX) user_appdata_directory = get_osx_user_appdata_directory(); +#elif defined(ANDROID) + user_appdata_directory.set_dirname(_internal_data_dir); + user_appdata_directory.set_basename("files"); + #else // Posix case. user_appdata_directory = get_home_directory(); @@ -683,6 +702,10 @@ get_common_appdata_directory() { #elif defined(IS_OSX) common_appdata_directory = get_osx_common_appdata_directory(); +#elif defined(ANDROID) + common_appdata_directory.set_dirname(_internal_data_dir); + common_appdata_directory.set_basename("files"); + #else // Posix case. common_appdata_directory = "/var"; diff --git a/dtool/src/dtoolutil/filename.h b/dtool/src/dtoolutil/filename.h index e1c66ad3cd..493b912f69 100644 --- a/dtool/src/dtoolutil/filename.h +++ b/dtool/src/dtoolutil/filename.h @@ -263,6 +263,11 @@ protected: static TVOLATILE AtomicAdjust::Pointer _user_appdata_directory; static TVOLATILE AtomicAdjust::Pointer _common_appdata_directory; +#ifdef ANDROID +public: + static string _internal_data_dir; +#endif + public: static TypeHandle get_class_type() { return _type_handle; diff --git a/panda/src/android/android_main.cxx b/panda/src/android/android_main.cxx index 215c0abf44..a75f6ceb0e 100644 --- a/panda/src/android/android_main.cxx +++ b/panda/src/android/android_main.cxx @@ -16,6 +16,7 @@ #include "config_util.h" #include "virtualFileMountAndroidAsset.h" #include "virtualFileSystem.h" +#include "filename.h" #include "config_display.h" //#define OPENGLES_1 @@ -45,9 +46,36 @@ void android_main(struct android_app* app) { return; } + // Fetch the data directory. + jclass activity_class = env->GetObjectClass(activity->clazz); + jmethodID get_appinfo = env->GetMethodID(activity_class, "getApplicationInfo", "()Landroid/content/pm/ApplicationInfo;"); + + jobject appinfo = env->CallObjectMethod(activity->clazz, get_appinfo); + jclass appinfo_class = env->GetObjectClass(appinfo); + + // Fetch the path to the data directory. + jfieldID datadir_field = env->GetFieldID(appinfo_class, "dataDir", "Ljava/lang/String;"); + jstring datadir = (jstring) env->GetObjectField(appinfo, datadir_field); + const char *data_path = env->GetStringUTFChars(datadir, NULL); + + Filename::_internal_data_dir = data_path; + android_cat.info() << "Path to data: " << data_path << "\n"; + + env->ReleaseStringUTFChars(datadir, data_path); + + // Fetch the path to the library directory. + jfieldID libdir_field = env->GetFieldID(appinfo_class, "nativeLibraryDir", "Ljava/lang/String;"); + jstring libdir = (jstring) env->GetObjectField(appinfo, libdir_field); + const char *lib_path = env->GetStringUTFChars(libdir, NULL); + + string dtool_name = string(lib_path) + "/libp3dtool.so"; + ExecutionEnvironment::set_dtool_name(dtool_name); + android_cat.info() << "Path to dtool: " << dtool_name << "\n"; + + env->ReleaseStringUTFChars(libdir, lib_path); + // Get the path to the APK. - jclass clazz = env->GetObjectClass(activity->clazz); - jmethodID methodID = env->GetMethodID(clazz, "getPackageCodePath", "()Ljava/lang/String;"); + jmethodID methodID = env->GetMethodID(activity_class, "getPackageCodePath", "()Ljava/lang/String;"); jstring code_path = (jstring) env->CallObjectMethod(activity->clazz, methodID); const char* apk_path; diff --git a/panda/src/androiddisplay/androidGraphicsWindow.cxx b/panda/src/androiddisplay/androidGraphicsWindow.cxx index a48a85107d..6a134255e9 100644 --- a/panda/src/androiddisplay/androidGraphicsWindow.cxx +++ b/panda/src/androiddisplay/androidGraphicsWindow.cxx @@ -326,7 +326,7 @@ open_window() { return false; } - //_fb_properties = androidgsg->get_fb_properties(); + _fb_properties = androidgsg->get_fb_properties(); androiddisplay_cat.error() << "open_window done\n"; @@ -434,7 +434,7 @@ handle_command(struct android_app *app, int32_t command) { void AndroidGraphicsWindow:: ns_handle_command(int32_t command) { WindowProperties properties; - + switch (command) { case APP_CMD_SAVE_STATE: // The system has asked us to save our current state. Do so. @@ -446,16 +446,25 @@ ns_handle_command(int32_t command) { // The window is being shown, get it ready. if (_app->window != NULL) { create_surface(); + properties.set_size(ANativeWindow_getWidth(_app->window), + ANativeWindow_getHeight(_app->window)); properties.set_minimized(false); system_changed_properties(properties); } break; + case APP_CMD_CONFIG_CHANGED: + properties.set_size(ANativeWindow_getWidth(_app->window), + ANativeWindow_getHeight(_app->window)); + system_changed_properties(properties); + break; case APP_CMD_TERM_WINDOW: destroy_surface(); properties.set_minimized(true); system_changed_properties(properties); break; case APP_CMD_WINDOW_RESIZED: + properties.set_size(ANativeWindow_getWidth(_app->window), + ANativeWindow_getHeight(_app->window)); break; case APP_CMD_WINDOW_REDRAW_NEEDED: break; diff --git a/panda/src/express/virtualFileMountAndroidAsset.cxx b/panda/src/express/virtualFileMountAndroidAsset.cxx index e2b9858f4a..a2519e541a 100644 --- a/panda/src/express/virtualFileMountAndroidAsset.cxx +++ b/panda/src/express/virtualFileMountAndroidAsset.cxx @@ -57,7 +57,7 @@ get_fd(const Filename &file, off_t *start, off_t *length) const { //////////////////////////////////////////////////////////////////// bool VirtualFileMountAndroidAsset:: has_file(const Filename &file) const { - return (file.empty() || is_directory(file) || is_regular_file(file)); + return (file.empty() || /*is_directory(file) ||*/ is_regular_file(file)); } //////////////////////////////////////////////////////////////////// diff --git a/panda/src/glesgsg/glesgsg.h b/panda/src/glesgsg/glesgsg.h index d964b48765..485bc0dacc 100644 --- a/panda/src/glesgsg/glesgsg.h +++ b/panda/src/glesgsg/glesgsg.h @@ -90,6 +90,7 @@ #define GL_DEPTH_STENCIL_EXT GL_DEPTH_STENCIL_OES #define GL_UNSIGNED_INT_24_8_EXT GL_UNSIGNED_INT_24_8_OES #define GL_DEPTH24_STENCIL8_EXT GL_DEPTH24_STENCIL8_OES +#define GL_DEPTH24_STENCIL8 GL_DEPTH24_STENCIL8_OES #define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES #define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES #define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES diff --git a/panda/src/glstuff/glGraphicsBuffer_src.cxx b/panda/src/glstuff/glGraphicsBuffer_src.cxx index 671003a1f1..8050b7bc4c 100644 --- a/panda/src/glstuff/glGraphicsBuffer_src.cxx +++ b/panda/src/glstuff/glGraphicsBuffer_src.cxx @@ -174,6 +174,7 @@ begin_frame(FrameMode mode, Thread *current_thread) { // In case of multisample rendering, we don't need to issue // the barrier until we call glBlitFramebuffer. +#ifndef OPENGLES if (gl_enable_memory_barriers && _fbo_multisample == 0) { CLP(GraphicsStateGuardian) *glgsg; DCAST_INTO_R(glgsg, _gsg, false); @@ -189,6 +190,7 @@ begin_frame(FrameMode mode, Thread *current_thread) { } } } +#endif } _gsg->set_current_properties(&get_fb_properties()); @@ -443,6 +445,7 @@ rebuild_bitplanes() { if (_fbo[layer] == 0) { glgsg->_glGenFramebuffers(1, &_fbo[layer]); +#ifndef OPENGLES if (glgsg->_use_object_labels) { if (num_fbos > 1) { GLchar name[128]; @@ -452,6 +455,7 @@ rebuild_bitplanes() { glgsg->_glObjectLabel(GL_FRAMEBUFFER, _fbo[layer], _name.size(), _name.data()); } } +#endif if (_fbo[layer] == 0) { report_my_gl_errors(); @@ -485,7 +489,7 @@ rebuild_bitplanes() { _have_any_color = true; } -#ifndef OPENGLES +#ifndef OPENGLES_1 for (int i=0; i<_fb_properties.get_aux_rgba(); i++) { bind_slot(layer, rb_resize, attach, (RenderTexturePlane)(RTP_aux_rgba_0+i), next++); _have_any_color = true; @@ -1630,6 +1634,7 @@ resolve_multisamples() { PStatGPUTimer timer(glgsg, _resolve_multisample_pcollector); +#ifndef OPENGLES if (gl_enable_memory_barriers) { // Issue memory barriers as necessary to make sure that the // texture memory is synchronized before we blit to it. @@ -1644,6 +1649,7 @@ resolve_multisamples() { } } } +#endif glgsg->report_my_gl_errors(); GLuint fbo = _fbo[0]; @@ -1692,6 +1698,7 @@ resolve_multisamples() { GL_NEAREST); } // Now handle the other color buffers. +#ifndef OPENGLES_1 int next = GL_COLOR_ATTACHMENT1_EXT; if (_fb_properties.is_stereo()) { glReadBuffer(next); @@ -1700,7 +1707,6 @@ resolve_multisamples() { GL_COLOR_BUFFER_BIT, GL_NEAREST); next += 1; } -#ifndef OPENGLES for (int i = 0; i < _fb_properties.get_aux_rgba(); ++i) { glReadBuffer(next); glDrawBuffer(next); diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index a4c1211372..2ad5a127ec 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -552,6 +552,7 @@ reset() { _supported_geom_rendering |= Geom::GR_point_sprite; } +#ifndef OPENGLES _glPrimitiveRestartIndex = NULL; if (is_at_least_gl_version(4, 3) || has_extension("GL_ARB_ES3_compatibility")) { @@ -575,6 +576,7 @@ reset() { _glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) get_extension_func("glPrimitiveRestartIndexNV"); } +#endif _supports_vertex_blend = has_extension("GL_ARB_vertex_blend"); @@ -798,7 +800,6 @@ reset() { } } - _supports_2d_texture_array = false; #ifndef OPENGLES _supports_2d_texture_array = has_extension("GL_EXT_texture_array"); @@ -914,12 +915,10 @@ reset() { glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, formats); for (int i = 0; i < num_compressed_formats; ++i) { switch (formats[i]) { -#ifndef OPENGLES_1 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: _compressed_texture_formats.set_bit(Texture::CM_dxt1); break; -#endif #ifdef OPENGLES case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: @@ -1776,7 +1775,6 @@ reset() { glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, formats); for (int i = 0; i < num_compressed_formats; ++i) { switch (formats[i]) { -#ifndef OPENGLES_1 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: GLCAT.debug(false) << " GL_COMPRESSED_RGB_S3TC_DXT1_EXT\n"; break; @@ -1784,7 +1782,6 @@ reset() { case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: GLCAT.debug(false) << " GL_COMPRESSED_RGBA_S3TC_DXT1_EXT\n"; break; -#endif #ifdef OPENGLES case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: GLCAT.debug(false) << " GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG\n"; @@ -2431,6 +2428,7 @@ prepare_display_region(DisplayRegionPipelineReader *dr) { _scissor_enabled = false; } +#ifndef OPENGLES if (_supports_viewport_arrays) { int count = dr->get_num_regions(); GLfloat *viewports = (GLfloat *)alloca(sizeof(GLfloat) * 4 * count); @@ -2450,7 +2448,9 @@ prepare_display_region(DisplayRegionPipelineReader *dr) { _glScissorArrayv(0, count, scissors); } - } else { + } else +#endif // OPENGLES + { glViewport(x, y, width, height); if (dr->get_scissor_enabled()) { glScissor(x, y, width, height); @@ -3845,9 +3845,11 @@ draw_linestrips(const GeomPrimitivePipelineReader *reader, bool force) { if (reader->is_indexed() && (_supported_geom_rendering & GeomEnums::GR_strip_cut_index) != 0) { // One long triangle strip, connected by strip cut indices. +#ifndef OPENGLES if (_glPrimitiveRestartIndex != NULL) { _glPrimitiveRestartIndex(reader->get_strip_cut_index()); } +#endif int num_vertices = reader->get_num_vertices(); _vertices_other_pcollector.add_level(num_vertices); @@ -5271,9 +5273,11 @@ framebuffer_copy_to_ram(Texture *tex, int view, int z, case GL_FLOAT: GLCAT.spam(false) << "GL_FLOAT"; break; +#ifndef OPENGLES_1 case GL_INT: GLCAT.spam(false) << "GL_INT"; break; +#endif default: GLCAT.spam(false) << "unknown"; break; @@ -5810,7 +5814,11 @@ do_issue_material() { } #endif // NDEBUG +#ifdef OPENGLES + const GLenum face = GL_FRONT_AND_BACK; +#else GLenum face = material->get_twoside() ? GL_FRONT_AND_BACK : GL_FRONT; +#endif call_glMaterialfv(face, GL_SPECULAR, material->get_specular()); call_glMaterialfv(face, GL_EMISSION, material->get_emission()); @@ -7045,7 +7053,9 @@ get_component_type(Texture::ComponentType component_type) { return GL_UNSIGNED_BYTE; } case Texture::T_int: +#ifndef OPENGLES_1 return GL_INT; +#endif default: GLCAT.error() << "Invalid Texture::Type value!\n"; return GL_UNSIGNED_BYTE; @@ -7133,18 +7143,19 @@ get_external_image_format(Texture *tex) const { #endif break; -#ifndef OPENGLES_1 case Texture::CM_dxt1: +#ifndef OPENGLES_1 if (format == Texture::F_srgb_alpha) { return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT; } else if (format == Texture::F_srgb) { return GL_COMPRESSED_SRGB_S3TC_DXT1_EXT; - } else if (Texture::has_alpha(format)) { + } else +#endif + if (Texture::has_alpha(format)) { return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; } else { return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; } -#endif #ifndef OPENGLES case Texture::CM_dxt3: @@ -7170,22 +7181,28 @@ get_external_image_format(Texture *tex) const { #else case Texture::CM_pvr1_2bpp: +#ifndef OPENGLES_1 if (format == Texture::F_srgb_alpha) { return GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT; } else if (format == Texture::F_srgb) { return GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT; - } else if (Texture::has_alpha(format)) { + } else +#endif // OPENGLES_1 + if (Texture::has_alpha(format)) { return GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; } else { return GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG; } case Texture::CM_pvr1_4bpp: +#ifndef OPENGLES_1 if (format == Texture::F_srgb_alpha) { return GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT; } else if (format == Texture::F_srgb) { return GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT; - } else if (Texture::has_alpha(format)) { + } else +#endif // OPENGLES_1 + if (Texture::has_alpha(format)) { return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; } else { return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; @@ -7425,18 +7442,19 @@ get_internal_image_format(Texture *tex) const { return GL_COMPRESSED_SLUMINANCE_ALPHA; #endif -#ifndef OPENGLES_1 case Texture::CM_dxt1: +#ifndef OPENGLES_1 if (format == Texture::F_srgb_alpha) { return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT; } else if (format == Texture::F_srgb) { return GL_COMPRESSED_SRGB_S3TC_DXT1_EXT; - } else if (Texture::has_alpha(format)) { + } else +#endif + if (Texture::has_alpha(format)) { return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; } else { return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; } -#endif #ifndef OPENGLES case Texture::CM_dxt3: @@ -7461,22 +7479,28 @@ get_internal_image_format(Texture *tex) const { } #else case Texture::CM_pvr1_2bpp: +#ifndef OPENGLES_1 if (format == Texture::F_srgb_alpha) { return GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT; } else if (format == Texture::F_srgb) { return GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT; - } else if (Texture::has_alpha(format)) { + } else +#endif // OPENGLES_1 + if (Texture::has_alpha(format)) { return GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; } else { return GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG; } case Texture::CM_pvr1_4bpp: +#ifndef OPENGLES_1 if (format == Texture::F_srgb_alpha) { return GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT; } else if (format == Texture::F_srgb) { return GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT; - } else if (Texture::has_alpha(format)) { + } else +#endif // OPENGLES_1 + if (Texture::has_alpha(format)) { return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; } else { return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; @@ -7500,9 +7524,12 @@ get_internal_image_format(Texture *tex) const { case Texture::F_depth_stencil: if (_supports_depth_stencil) { +#ifndef OPENGLES_1 if (tex->get_component_type() == Texture::T_float) { return GL_DEPTH32F_STENCIL8; - } else { + } else +#endif + { return GL_DEPTH_STENCIL; } } @@ -7554,9 +7581,12 @@ get_internal_image_format(Texture *tex) const { case Texture::F_rgba: case Texture::F_rgbm: +#ifndef OPENGLES_1 if (tex->get_component_type() == Texture::T_float) { return GL_RGBA16F; - } else { + } else +#endif + { return GL_RGBA; } @@ -7568,17 +7598,13 @@ get_internal_image_format(Texture *tex) const { return GL_RGBA8_OES; case Texture::F_rgba12: return GL_RGBA; -#ifndef OPENGLES_1 - case Texture::F_rgba16: - return GL_RGBA16F; -#endif // OPENGLES_1 - case Texture::F_rgba32: - return GL_RGBA32F; #else case Texture::F_rgba8: return GL_RGBA8; case Texture::F_rgba12: return GL_RGBA12; +#endif // OPENGLES +#ifndef OPENGLES_1 case Texture::F_rgba16: return GL_RGBA16F; case Texture::F_rgba32: @@ -7648,21 +7674,21 @@ get_internal_image_format(Texture *tex) const { return GL_RG16; } #endif + +#ifndef OPENGLES_1 case Texture::F_r32: return GL_R32F; case Texture::F_rg32: return GL_RG32F; - case Texture::F_alpha: - return GL_ALPHA; - -#ifndef OPENGLES_1 case Texture::F_red: case Texture::F_green: case Texture::F_blue: return GL_RED; #endif + case Texture::F_alpha: + return GL_ALPHA; case Texture::F_luminance: return GL_LUMINANCE; case Texture::F_luminance_alpha: @@ -7723,10 +7749,8 @@ is_mipmap_filter(GLenum min_filter) { bool CLP(GraphicsStateGuardian):: is_compressed_format(GLenum format) { switch (format) { -#ifndef OPENGLES_1 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: -#endif #ifdef OPENGLES case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG: case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: @@ -8811,20 +8835,17 @@ update_standard_texture_bindings() { _glActiveTexture(GL_TEXTURE0 + i); // First, turn off the previous texture mode. -#ifndef OPENGLES_2 -#ifndef OPENGLES - glDisable(GL_TEXTURE_1D); -#endif // OPENGLES glDisable(GL_TEXTURE_2D); - if (_supports_3d_texture) { -#ifndef OPENGLES_1 - glDisable(GL_TEXTURE_3D); -#endif // OPENGLES_1 - } if (_supports_cube_map) { glDisable(GL_TEXTURE_CUBE_MAP); } -#endif // OPENGLES_2 + +#ifndef OPENGLES + glDisable(GL_TEXTURE_1D); + if (_supports_3d_texture) { + glDisable(GL_TEXTURE_3D); + } +#endif // OPENGLES int view = get_current_tex_view_offset() + stage->get_tex_view_offset(); TextureContext *tc = texture->prepare_now(view, _prepared_objects, this); @@ -8833,7 +8854,6 @@ update_standard_texture_bindings() { continue; } -#ifndef OPENGLES_2 // Then, turn on the current texture mode. GLenum target = get_texture_target(texture->get_texture_type()); if (target == GL_NONE) { @@ -8845,14 +8865,11 @@ update_standard_texture_bindings() { // Cannot be applied via the FFP. continue; } -#endif +#endif // OPENGLES glEnable(target); -#endif if (!update_texture(tc, false)) { -#ifndef OPENGLES_2 glDisable(target); -#endif continue; } apply_texture(tc); @@ -8979,30 +8996,26 @@ update_standard_texture_bindings() { } } -#ifndef OPENGLES_2 // Disable the texture stages that are no longer used. for (i = num_stages; i < _num_active_texture_stages; i++) { _glActiveTexture(GL_TEXTURE0 + i); -#ifndef OPENGLES - glDisable(GL_TEXTURE_1D); -#endif // OPENGLES glDisable(GL_TEXTURE_2D); - if (_supports_3d_texture) { -#ifndef OPENGLES_1 - glDisable(GL_TEXTURE_3D); -#endif // OPENGLES_1 - } if (_supports_cube_map) { glDisable(GL_TEXTURE_CUBE_MAP); } +#ifndef OPENGLES + glDisable(GL_TEXTURE_1D); + if (_supports_3d_texture) { + glDisable(GL_TEXTURE_3D); + } +#endif // OPENGLES } -#endif // OPENGLES_2 // Save the count of texture stages for next time. _num_active_texture_stages = num_stages; report_my_gl_errors(); -#endif +#endif // OPENGLES_2 } @@ -10226,16 +10239,6 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, _data_transferred_pcollector.add_level(view_size); #endif switch (texture_target) { - case GL_TEXTURE_1D: - if (image_compression == Texture::CM_off) { - glTexSubImage1D(page_target, n - mipmap_bias, 0, width, - external_format, component_type, image_ptr); - } else { - _glCompressedTexSubImage1D(page_target, n - mipmap_bias, 0, width, - external_format, view_size, image_ptr); - } - break; - #ifdef OPENGLES_2 case GL_TEXTURE_3D_OES: #endif @@ -10256,6 +10259,16 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, return false; } break; + + case GL_TEXTURE_1D: + if (image_compression == Texture::CM_off) { + glTexSubImage1D(page_target, n - mipmap_bias, 0, width, + external_format, component_type, image_ptr); + } else { + _glCompressedTexSubImage1D(page_target, n - mipmap_bias, 0, width, + external_format, view_size, image_ptr); + } + break; #endif #ifndef OPENGLES case GL_TEXTURE_2D_ARRAY_EXT: @@ -10826,10 +10839,12 @@ do_extract_texture_data(CLP(TextureContext) *gtc) { type = Texture::T_unsigned_int_24_8; format = Texture::F_depth_stencil; break; +#ifndef OPENGLES_1 case GL_DEPTH32F_STENCIL8: type = Texture::T_float; format = Texture::F_depth_stencil; break; +#endif case GL_RGBA: case 4: format = Texture::F_rgba; @@ -11022,7 +11037,6 @@ do_extract_texture_data(CLP(TextureContext) *gtc) { break; #endif -#ifndef OPENGLES_1 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: format = Texture::F_rgb; compression = Texture::CM_dxt1; @@ -11031,6 +11045,7 @@ do_extract_texture_data(CLP(TextureContext) *gtc) { format = Texture::F_rgbm; compression = Texture::CM_dxt1; break; +#ifndef OPENGLES_1 case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: format = Texture::F_srgb; compression = Texture::CM_dxt1; @@ -11040,6 +11055,26 @@ do_extract_texture_data(CLP(TextureContext) *gtc) { compression = Texture::CM_dxt1; break; #endif + +#ifdef OPENGLES_2 + case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT: + format = Texture::F_srgb; + compression = Texture::CM_pvr1_2bpp; + break; + case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT: + format = Texture::F_srgb_alpha; + compression = Texture::CM_pvr1_2bpp; + break; + case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT: + format = Texture::F_srgb; + compression = Texture::CM_pvr1_4bpp; + break; + case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT: + format = Texture::F_srgb_alpha; + compression = Texture::CM_pvr1_4bpp; + break; +#endif // OPENGLES_2 + #ifdef OPENGLES case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: format = Texture::F_rgb; @@ -11058,22 +11093,6 @@ do_extract_texture_data(CLP(TextureContext) *gtc) { compression = Texture::CM_pvr1_4bpp; break; - case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT: - format = Texture::F_srgb; - compression = Texture::CM_pvr1_2bpp; - break; - case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT: - format = Texture::F_srgb_alpha; - compression = Texture::CM_pvr1_2bpp; - break; - case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT: - format = Texture::F_srgb; - compression = Texture::CM_pvr1_4bpp; - break; - case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT: - format = Texture::F_srgb_alpha; - compression = Texture::CM_pvr1_4bpp; - break; #else case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: format = Texture::F_rgba; diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.h b/panda/src/glstuff/glGraphicsStateGuardian_src.h index bfb314e3a1..3d79791f72 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.h +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.h @@ -598,7 +598,9 @@ public: PFNGLPOINTPARAMETERFVPROC _glPointParameterfv; bool _supports_point_sprite; +#ifndef OPENGLES PFNGLPRIMITIVERESTARTINDEXPROC _glPrimitiveRestartIndex; +#endif bool _supports_vertex_blend; PFNGLWEIGHTPOINTERARBPROC _glWeightPointer; @@ -710,11 +712,13 @@ public: PFNGLGETQUERYIVPROC _glGetQueryiv; PFNGLGETQUERYOBJECTUIVPROC _glGetQueryObjectuiv; +#ifndef OPENGLES PFNGLQUERYCOUNTERPROC _glQueryCounter; PFNGLGETQUERYOBJECTI64VPROC _glGetQueryObjecti64v; PFNGLGETQUERYOBJECTUI64VPROC _glGetQueryObjectui64v; PFNGLGETINTEGER64VPROC _glGetInteger64v; +#endif PFNGLACTIVESTENCILFACEEXTPROC _glActiveStencilFaceEXT; diff --git a/panda/src/glstuff/glTextureContext_src.cxx b/panda/src/glstuff/glTextureContext_src.cxx index 4c42ab07c8..af6d8c7259 100644 --- a/panda/src/glstuff/glTextureContext_src.cxx +++ b/panda/src/glstuff/glTextureContext_src.cxx @@ -23,12 +23,14 @@ TypeHandle CLP(TextureContext)::_type_handle; //////////////////////////////////////////////////////////////////// CLP(TextureContext):: ~CLP(TextureContext)() { +#ifndef OPENGLES if (gl_enable_memory_barriers) { _glgsg->_textures_needing_fetch_barrier.erase(this); _glgsg->_textures_needing_image_access_barrier.erase(this); _glgsg->_textures_needing_update_barrier.erase(this); _glgsg->_textures_needing_framebuffer_barrier.erase(this); } +#endif glDeleteTextures(1, &_index); _index = 0; @@ -53,12 +55,15 @@ void CLP(TextureContext):: evict_lru() { dequeue_lru(); +#ifndef OPENGLES if (_handle != 0) { if (_handle_resident) { _glgsg->_glMakeTextureHandleNonResident(_handle); } _handle_resident = false; - } else { + } else +#endif + { reset_data(); } @@ -74,9 +79,11 @@ evict_lru() { //////////////////////////////////////////////////////////////////// void CLP(TextureContext):: reset_data() { +#ifndef OPENGLES if (_handle != 0 && _handle_resident) { _glgsg->_glMakeTextureHandleNonResident(_handle); } +#endif // Free the texture resources. glDeleteTextures(1, &_index); @@ -108,6 +115,7 @@ reset_data() { //////////////////////////////////////////////////////////////////// void CLP(TextureContext):: make_handle_resident() { +#ifndef OPENGLES if (_handle != 0) { if (!_handle_resident) { _glgsg->_glMakeTextureHandleResident(_handle); @@ -115,6 +123,7 @@ make_handle_resident() { } set_resident(true); } +#endif } //////////////////////////////////////////////////////////////////// From 5f8fffccfe292bc9cd13dafe7303b36462dce4d7 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 15:13:26 +0000 Subject: [PATCH 18/27] Add GSG::get_supports_texture_srgb() --- panda/src/display/graphicsStateGuardian.I | 10 ++++++++++ panda/src/display/graphicsStateGuardian.cxx | 1 + panda/src/display/graphicsStateGuardian.h | 2 ++ panda/src/glstuff/glGraphicsStateGuardian_src.cxx | 8 ++++++++ panda/src/gsgbase/graphicsStateGuardianBase.h | 2 ++ 5 files changed, 23 insertions(+) diff --git a/panda/src/display/graphicsStateGuardian.I b/panda/src/display/graphicsStateGuardian.I index 6b6f5fe370..11e091bf2c 100644 --- a/panda/src/display/graphicsStateGuardian.I +++ b/panda/src/display/graphicsStateGuardian.I @@ -447,6 +447,16 @@ get_supports_tex_non_pow2() const { return _supports_tex_non_pow2; } +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::get_supports_texture_srgb +// Access: Published +// Description: Returns true if this GSG can handle sRGB textures. +//////////////////////////////////////////////////////////////////// +INLINE bool GraphicsStateGuardian:: +get_supports_texture_srgb() const { + return _supports_texture_srgb; +} + //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_supports_compressed_texture // Access: Published diff --git a/panda/src/display/graphicsStateGuardian.cxx b/panda/src/display/graphicsStateGuardian.cxx index 2a76922425..1e8131e6b4 100644 --- a/panda/src/display/graphicsStateGuardian.cxx +++ b/panda/src/display/graphicsStateGuardian.cxx @@ -195,6 +195,7 @@ GraphicsStateGuardian(CoordinateSystem internal_coordinate_system, _supports_2d_texture_array = false; _supports_cube_map = false; _supports_tex_non_pow2 = false; + _supports_texture_srgb = false; _supports_compressed_texture = false; _compressed_texture_formats.clear(); _compressed_texture_formats.set_bit(Texture::CM_off); diff --git a/panda/src/display/graphicsStateGuardian.h b/panda/src/display/graphicsStateGuardian.h index 883a57c0c2..8484ee1be6 100644 --- a/panda/src/display/graphicsStateGuardian.h +++ b/panda/src/display/graphicsStateGuardian.h @@ -127,6 +127,7 @@ PUBLISHED: INLINE bool get_supports_2d_texture_array() const; INLINE bool get_supports_cube_map() const; INLINE bool get_supports_tex_non_pow2() const; + INLINE bool get_supports_texture_srgb() const; INLINE bool get_supports_compressed_texture() const; virtual INLINE bool get_supports_compressed_texture_format(int compression_mode) const; @@ -476,6 +477,7 @@ protected: bool _supports_2d_texture_array; bool _supports_cube_map; bool _supports_tex_non_pow2; + bool _supports_texture_srgb; bool _supports_compressed_texture; BitMask32 _compressed_texture_formats; diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 2ad5a127ec..7a95f02a66 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -828,6 +828,14 @@ reset() { } #endif + _supports_texture_srgb = false; + if (is_at_least_gl_version(2, 1) || has_extension("GL_EXT_texture_sRGB")) { + _supports_texture_srgb = true; + + } else if (has_extension("GL_EXT_sRGB")) { // GLES case. + _supports_texture_srgb = true; + } + _supports_compressed_texture = false; #ifdef OPENGLES diff --git a/panda/src/gsgbase/graphicsStateGuardianBase.h b/panda/src/gsgbase/graphicsStateGuardianBase.h index 32022ebe9a..7f8c13e0a7 100644 --- a/panda/src/gsgbase/graphicsStateGuardianBase.h +++ b/panda/src/gsgbase/graphicsStateGuardianBase.h @@ -124,6 +124,8 @@ PUBLISHED: virtual int get_supported_geom_rendering() const=0; virtual bool get_supports_shadow_filter() const=0; + virtual bool get_supports_texture_srgb() const=0; + public: // These are some general interface functions; they're defined here // mainly to make it easy to call these from code in some directory From 26fc5f41d477d3f48081acb9b515a652f3ecf54b Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 19:49:25 +0000 Subject: [PATCH 19/27] fix regression --- direct/src/showbase/ShowBase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index 2612416ad8..48657e40f0 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -8,7 +8,7 @@ __all__ = ['ShowBase', 'WindowControls'] #import VerboseImport from panda3d.core import * -from panda3d.direct import getConfigShowbase +from panda3d.direct import * # This needs to be available early for DirectGUI imports import __builtin__ From 7524299de9e2bb608e2ef85384d04e7eacb944f3 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 19:56:28 +0000 Subject: [PATCH 20/27] Fix regressions with Direct3D support. Add sRGB support to DX9 renderer. --- makepanda/makepanda.py | 2 +- panda/src/dxgsg8/Sources.pp | 2 +- panda/src/dxgsg8/wdxGraphicsWindow8.cxx | 4 +- panda/src/dxgsg9/Sources.pp | 2 +- panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx | 134 +++++++++------- panda/src/dxgsg9/dxGraphicsStateGuardian9.h | 10 +- panda/src/dxgsg9/dxTextureContext9.cxx | 145 +++++++++++------- panda/src/dxgsg9/wdxGraphicsPipe9.cxx | 8 +- panda/src/dxgsg9/wdxGraphicsWindow9.cxx | 28 ++-- panda/src/wgldisplay/wglGraphicsPipe.cxx | 2 +- 10 files changed, 193 insertions(+), 144 deletions(-) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 0f04977981..6692672541 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -492,7 +492,7 @@ if (COMPILER == "MSVC"): LibName(pkg, 'dxerr.lib') else: LibName(pkg, 'dxerrVNUM.lib'.replace("VNUM", vnum)) - LibName(pkg, 'ddraw.lib') + #LibName(pkg, 'ddraw.lib') LibName(pkg, 'dxguid.lib') IncDirectory("ALWAYS", GetThirdpartyDir() + "extras/include") LibName("WINSOCK", "wsock32.lib") diff --git a/panda/src/dxgsg8/Sources.pp b/panda/src/dxgsg8/Sources.pp index 1903beb0c4..515ad29c6f 100644 --- a/panda/src/dxgsg8/Sources.pp +++ b/panda/src/dxgsg8/Sources.pp @@ -22,7 +22,7 @@ wdxGraphicsPipe8.I wdxGraphicsPipe8.h \ wdxGraphicsWindow8.I wdxGraphicsWindow8.h \ dxgsg8base.h config_dxgsg8.h dxGraphicsStateGuardian8.I dxGraphicsStateGuardian8.h \ - dxVertexBufferContext8.h dxVertexbufferContext8.I \ + dxVertexBufferContext8.h dxVertexBufferContext8.I \ dxIndexBufferContext8.h dxIndexBufferContext8.I \ dxTextureContext8.h dxTextureContext8.I \ dxGeomMunger8.h dxGeomMunger8.I \ diff --git a/panda/src/dxgsg8/wdxGraphicsWindow8.cxx b/panda/src/dxgsg8/wdxGraphicsWindow8.cxx index ad408fa0e3..077274e36d 100644 --- a/panda/src/dxgsg8/wdxGraphicsWindow8.cxx +++ b/panda/src/dxgsg8/wdxGraphicsWindow8.cxx @@ -413,7 +413,7 @@ handle_reshape() { GdiFlush(); WinGraphicsWindow::handle_reshape(); - if (_dxgsg != NULL) { + if (_dxgsg != NULL && _dxgsg->_d3d_device != NULL) { // create the new resized rendertargets WindowProperties props = get_properties(); int x_size = props.get_x_size(); @@ -422,7 +422,7 @@ handle_reshape() { if (_wcontext._presentation_params.BackBufferWidth != x_size || _wcontext._presentation_params.BackBufferHeight != y_size) { bool resize_succeeded = reset_device_resize_window(x_size, y_size); - + if (wdxdisplay8_cat.is_debug()) { if (!resize_succeeded) { wdxdisplay8_cat.debug() diff --git a/panda/src/dxgsg9/Sources.pp b/panda/src/dxgsg9/Sources.pp index 0c5bd6a044..7a58fbcf2e 100755 --- a/panda/src/dxgsg9/Sources.pp +++ b/panda/src/dxgsg9/Sources.pp @@ -22,7 +22,7 @@ wdxGraphicsPipe9.I wdxGraphicsPipe9.h \ wdxGraphicsWindow9.I wdxGraphicsWindow9.h \ dxgsg9base.h config_dxgsg9.h dxGraphicsStateGuardian9.I dxGraphicsStateGuardian9.h \ - dxVertexBufferContext9.h dxVertexbufferContext9.I \ + dxVertexBufferContext9.h dxVertexBufferContext9.I \ dxIndexBufferContext9.h dxIndexBufferContext9.I \ dxTextureContext9.h dxTextureContext9.I \ dxGeomMunger9.h dxGeomMunger9.I \ diff --git a/panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx b/panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx index de3df8e994..de152695ce 100755 --- a/panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx +++ b/panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx @@ -224,6 +224,13 @@ apply_texture(int i, TextureContext *tc) { DXTextureContext9 *dtc = DCAST(DXTextureContext9, tc); Texture *tex = tc->get_texture(); + //if (tex->get_color_space() == CS_srgb) { + if (Texture::is_srgb(tex->get_format())) { + set_sampler_state(i, D3DSAMP_SRGBTEXTURE, TRUE); + } else { + set_sampler_state(i, D3DSAMP_SRGBTEXTURE, FALSE); + } + Texture::WrapMode wrap_u, wrap_v, wrap_w; DWORD address_u; @@ -256,7 +263,7 @@ apply_texture(int i, TextureContext *tc) { int supports_anisotropic_mag_filter; D3DTEXTUREFILTERTYPE new_mag_filter; - + supports_anisotropic_mag_filter = (_screen -> _d3dcaps.TextureFilterCaps & D3DPTFILTERCAPS_MAGFANISOTROPIC) != 0; if (aniso_degree <= 1 || supports_anisotropic_mag_filter == 0) { new_mag_filter = ((ft != Texture::FT_nearest) ? D3DTEXF_LINEAR : D3DTEXF_POINT); @@ -268,8 +275,8 @@ apply_texture(int i, TextureContext *tc) { hr = set_sampler_state(i, D3DSAMP_MAGFILTER, new_mag_filter); if (hr != D3D_OK) { dxgsg9_cat.error() - << "ERROR: set_sampler_state (D3DSAMP_MAGFILTER, " - << new_mag_filter << ") failed for texture:" << tex -> get_name() << endl; + << "ERROR: set_sampler_state (D3DSAMP_MAGFILTER, " + << new_mag_filter << ") failed for texture:" << tex -> get_name() << endl; } // map Panda composite min+mip filter types to d3d's separate min & mip filter types @@ -353,7 +360,7 @@ upload_texture(DXTextureContext9 *dtc, bool force) { dtc->delete_texture(); dtc->update_data_size_bytes(0); dtc->mark_unloaded(); - + if (_effective_incomplete_render && !force) { bool has_image = _supports_compressed_texture ? tex->has_ram_image() : tex->has_uncompressed_ram_image(); if (!has_image && tex->might_have_ram_image() && @@ -371,7 +378,7 @@ upload_texture(DXTextureContext9 *dtc, bool force) { } } } - + return dtc->create_texture(*_screen); } @@ -746,7 +753,7 @@ begin_occlusion_query() { << "Occlusion query failed.\n"; return; } - + PT(DXOcclusionQueryContext9) queryobj = new DXOcclusionQueryContext9(query); if (dxgsg9_cat.is_debug()) { @@ -776,7 +783,7 @@ end_occlusion_query() { PT(OcclusionQueryContext) result = _current_occlusion_query; IDirect3DQuery9 *query = DCAST(DXOcclusionQueryContext9, result)->_query; - + if (dxgsg9_cat.is_debug()) { dxgsg9_cat.debug() << "ending occlusion query " << query << "\n"; @@ -857,7 +864,7 @@ clear(DrawableRegion *clearable) { aux_flags |= D3DCLEAR_ZBUFFER; HRESULT hr2 = _d3d_device->Clear(0, NULL, D3DCLEAR_ZBUFFER, color_clear_value, depth_clear_value, stencil_clear_value); - if (FAILED(hr2)) { + if (FAILED(hr2)) { dxgsg9_cat.error() << "Unable to clear depth buffer; removing.\n"; // This is really hacky code. @@ -1040,6 +1047,12 @@ begin_frame(Thread *current_thread) { return false; } + if (_current_properties->get_srgb_color()) { + set_render_state(D3DRS_SRGBWRITEENABLE, TRUE); + } else { + set_render_state(D3DRS_SRGBWRITEENABLE, FALSE); + } + return true; } @@ -1343,14 +1356,14 @@ update_standard_vertex_arrays(bool force) { dxgsg9_cat.error() << "Unable to get reader for array " << array_index << "\n"; return false; } - + // Get the vertex buffer for this array. CLP(VertexBufferContext)* dvbc; if (!setup_array_data(dvbc, array_reader, force)) { dxgsg9_cat.error() << "Unable to setup vertex buffer for array " << array_index << "\n"; return false; } - + // Bind this array as the data source for the corresponding stream. const GeomVertexArrayFormat* array_format = array_reader->get_array_format(); hr = _d3d_device->SetStreamSource( array_index, dvbc->_vbuffer, 0, array_format->get_stride() ); @@ -2315,7 +2328,7 @@ reset() { // want gsg to pass all state settings down so any non-matching defaults we set here get overwritten nassertv(_screen->_d3d9 != NULL); - + if (_d3d_device == NULL) { return; } @@ -2379,27 +2392,27 @@ reset() { _shader_caps._ultimate_fprofile = (int)CG_PROFILE_PS_2_0; */ } - + if (dxgsg9_cat.is_debug()) { - + CGprofile vertex_profile; CGprofile pixel_profile; - + vertex_profile = cgD3D9GetLatestVertexProfile(); pixel_profile = cgD3D9GetLatestPixelProfile(); - + const char *vertex_profile_str = cgGetProfileString(vertex_profile); const char *pixel_profile_str = cgGetProfileString(pixel_profile); - + if (vertex_profile_str == NULL) { vertex_profile_str = "(null)"; } if (pixel_profile_str == NULL) { pixel_profile_str = "(null)"; } - + dxgsg9_cat.debug() << "\nCg vertex profile = " << vertex_profile_str << " id = " << vertex_profile << "\nCg pixel profile = " << pixel_profile_str << " id = " << pixel_profile @@ -2495,7 +2508,7 @@ reset() { << "\nDirectX SDK version " DIRECTX_SDK_VERSION << "\n"; } - + // OVERRIDE SUPPORT SINCE IT DOES NOT WORK WELL _screen->_supports_automatic_mipmap_generation = false; @@ -2618,12 +2631,19 @@ reset() { _last_testcooplevel_result = D3D_OK; + if (dxgsg9_cat.is_debug()) { + dxgsg9_cat.debug() << "Supported texture formats:\n"; + } + for(int i = 0; i < MAX_POSSIBLE_TEXFMTS; i++) { // look for all possible DX9 texture fmts D3DFORMAT_FLAG fmtflag = D3DFORMAT_FLAG(1 << i); hr = _screen->_d3d9->CheckDeviceFormat(_screen->_card_id, D3DDEVTYPE_HAL, _screen->_display_mode.Format, 0x0, D3DRTYPE_TEXTURE, g_D3DFORMATmap[fmtflag]); - if (SUCCEEDED(hr)){ + if (SUCCEEDED(hr)) { + if (dxgsg9_cat.is_debug()) { + dxgsg9_cat.debug() << " " << D3DFormatStr(g_D3DFORMATmap[fmtflag]) << "\n"; + } _screen->_supported_tex_formats_mask |= fmtflag; } } @@ -2632,7 +2652,7 @@ reset() { #define CHECK_FOR_DXTVERSION(num) \ if (_screen->_supported_tex_formats_mask & DXT##num##_FLAG) {\ if (dxgsg9_cat.is_debug()) {\ - dxgsg9_cat.debug() << "Compressed texture format DXT" << #num << " supported \n";\ + dxgsg9_cat.debug() << "Compressed texture format DXT" << #num << " supported\n";\ }\ _supports_compressed_texture = true;\ _compressed_texture_formats.set_bit(Texture::CM_dxt##num);\ @@ -2641,9 +2661,9 @@ reset() { if (_screen->_intel_compressed_texture_bug) { dxgsg9_cat.info() << "Buggy Intel driver detected; disabling compressed textures.\n"; - _screen->_supported_tex_formats_mask &= + _screen->_supported_tex_formats_mask &= ~(DXT1_FLAG | DXT2_FLAG | DXT3_FLAG | DXT4_FLAG | DXT5_FLAG); - + } else { // Check for available compressed formats normally. CHECK_FOR_DXTVERSION(1); @@ -2652,7 +2672,7 @@ reset() { CHECK_FOR_DXTVERSION(4); CHECK_FOR_DXTVERSION(5); } - + #undef CHECK_FOR_DXTVERSION _screen->_supports_rgba16f_texture_format = false; @@ -3292,7 +3312,7 @@ set_state_and_transform(const RenderState *target, !_state_mask.get_bit(transparency_slot) || !_state_mask.get_bit(color_write_slot) || !_state_mask.get_bit(color_blend_slot) || - (_target_shader->get_flag(ShaderAttrib::F_disable_alpha_write) != + (_target_shader->get_flag(ShaderAttrib::F_disable_alpha_write) != _state_shader->get_flag(ShaderAttrib::F_disable_alpha_write))) { //PStatTimer timer(_draw_set_state_blending_pcollector); do_issue_blending(); @@ -3353,7 +3373,7 @@ set_state_and_transform(const RenderState *target, do_issue_stencil(); _state_mask.set_bit(stencil_slot); } - + int fog_slot = FogAttrib::get_class_slot(); if (_target_rs->get_attrib(fog_slot) != _state_rs->get_attrib(fog_slot) || !_state_mask.get_bit(fog_slot)) { @@ -3446,22 +3466,22 @@ bind_light(DirectionalLight *light_obj, const NodePath &light, int light_id) { const LMatrix4 &light_mat = transform->get_mat(); LMatrix4 rel_mat = light_mat * LMatrix4::convert_mat(CS_yup_left, CS_default); LVector3f dir = LCAST(float, light_obj->get_direction() * rel_mat); - + D3DCOLORVALUE black; black.r = black.g = black.b = black.a = 0.0f; - + ZeroMemory(&fdata, sizeof(D3DLIGHT9)); - + fdata.Type = D3DLIGHT_DIRECTIONAL; fdata.Ambient = black ; LColorf color = LCAST(float, light_obj->get_specular_color()); fdata.Specular = *(D3DCOLORVALUE *)(color.get_data()); - + fdata.Direction = *(D3DVECTOR *)dir.get_data(); - + fdata.Range = __D3DLIGHT_RANGE_MAX; fdata.Falloff = 1.0f; - + fdata.Attenuation0 = 1.0f; // constant fdata.Attenuation1 = 0.0f; // linear fdata.Attenuation2 = 0.0f; // quadratic @@ -4125,7 +4145,7 @@ close_gsg() { if (dxgsg9_cat.is_debug()) { dxgsg9_cat.debug() - << "Closing GSG, prepared_objects count = " + << "Closing GSG, prepared_objects count = " << _prepared_objects->get_ref_count() << "\n"; } @@ -4210,9 +4230,9 @@ set_read_buffer(const RenderBuffer &rb) { if (rb._buffer_type & RenderBuffer::T_front) { _cur_read_pixel_buffer = RenderBuffer::T_front; } else if (rb._buffer_type & RenderBuffer::T_back) { - _cur_read_pixel_buffer = RenderBuffer::T_back; + _cur_read_pixel_buffer = RenderBuffer::T_back; } else if (rb._buffer_type & RenderBuffer::T_aux_rgba_ALL) { - _cur_read_pixel_buffer = RenderBuffer::T_back; + _cur_read_pixel_buffer = RenderBuffer::T_back; } else { dxgsg9_cat.error() << "Invalid or unimplemented Argument to set_read_buffer!\n"; } @@ -4816,7 +4836,7 @@ check_cooperative_level() { case D3DERR_DEVICELOST: // sleep while the device is lost to free up the CPU Sleep (10); - + if (SUCCEEDED(_last_testcooplevel_result)) { if (_dx_is_ready) { _dx_is_ready = false; @@ -4847,7 +4867,7 @@ show_frame() { if (_swap_chain) { DWORD flags; flags = 0; - + hr = _swap_chain->Present((CONST RECT*)NULL, (CONST RECT*)NULL, (HWND)NULL, NULL, flags); } else { hr = _d3d_device->Present((CONST RECT*)NULL, (CONST RECT*)NULL, (HWND)NULL, NULL); @@ -5220,7 +5240,7 @@ check_dx_allocation (HRESULT result, int allocation_size, int attempts) // increase the page out size as the number of attempts increases { size_t current_size = _prepared_objects->_graphics_memory_lru.get_total_size(); - size_t target_size = max(current_size - allocation_size * attempts, 0); + size_t target_size = max(current_size - allocation_size * attempts, (size_t) 0); _prepared_objects->_graphics_memory_lru.evict_to(target_size); dxgsg9_cat.info() << "Evicted " << current_size - _prepared_objects->_graphics_memory_lru.get_total_size() << " bytes of texture memory to make room for more.\n"; @@ -5435,7 +5455,7 @@ do_issue_stencil() { //////////////////////////////////////////////////////////////////// // Function: dxGraphicsStateGuardian9::do_issue_scissor // Access: Protected -// Description: +// Description: //////////////////////////////////////////////////////////////////// void DXGraphicsStateGuardian9:: do_issue_scissor() { @@ -5522,8 +5542,8 @@ void _create_gamma_table (PN_stdfloat gamma, unsigned short *original_red_table, // avoid divide by zero and negative exponents gamma = 1.0; } - gamma_correction = 1.0 / (double) gamma; - + gamma_correction = 1.0 / (double) gamma; + for (i = 0; i < 256; i++) { double r; double g; @@ -5534,11 +5554,11 @@ void _create_gamma_table (PN_stdfloat gamma, unsigned short *original_red_table, g = (double) original_green_table [i] / GAMMA_1; b = (double) original_blue_table [i] / GAMMA_1; } - else { + else { r = ((double) i / 255.0); g = r; b = r; - } + } r = pow (r, gamma_correction); g = pow (g, gamma_correction); @@ -5554,14 +5574,14 @@ void _create_gamma_table (PN_stdfloat gamma, unsigned short *original_red_table, b = 1.0; } - r = r * GAMMA_1; - g = g * GAMMA_1; - b = b * GAMMA_1; + r = r * GAMMA_1; + g = g * GAMMA_1; + b = b * GAMMA_1; red_table [i] = r; green_table [i] = g; blue_table [i] = b; - } + } } //////////////////////////////////////////////////////////////////// @@ -5571,13 +5591,13 @@ void _create_gamma_table (PN_stdfloat gamma, unsigned short *original_red_table, //////////////////////////////////////////////////////////////////// bool DXGraphicsStateGuardian9:: get_gamma_table(void) { - bool get; + bool get; get = false; if (_gamma_table_initialized == false) { HDC hdc = GetDC(NULL); - if (hdc) { + if (hdc) { if (GetDeviceGammaRamp (hdc, (LPVOID) _orignial_gamma_table)) { _gamma_table_initialized = true; get = true; @@ -5586,26 +5606,26 @@ get_gamma_table(void) { ReleaseDC (NULL, hdc); } } - + return get; } //////////////////////////////////////////////////////////////////// // Function: DXGraphicsStateGuardian9::static_set_gamma // Access: Public, Static -// Description: Static function for setting gamma which is needed +// Description: Static function for setting gamma which is needed // for atexit. //////////////////////////////////////////////////////////////////// bool DXGraphicsStateGuardian9:: static_set_gamma(bool restore, PN_stdfloat gamma) { - bool set; + bool set; HDC hdc = GetDC(NULL); set = false; - if (hdc) { + if (hdc) { unsigned short ramp [256 * 3]; - if (restore && _gamma_table_initialized) { + if (restore && _gamma_table_initialized) { _create_gamma_table (gamma, &_orignial_gamma_table [0], &_orignial_gamma_table [256], &_orignial_gamma_table [512], &ramp [0], &ramp [256], &ramp [512]); } else { @@ -5615,7 +5635,7 @@ static_set_gamma(bool restore, PN_stdfloat gamma) { if (SetDeviceGammaRamp (hdc, ramp)) { set = true; } - + ReleaseDC (NULL, hdc); } @@ -5634,7 +5654,7 @@ set_gamma(PN_stdfloat gamma) { set = static_set_gamma(false, gamma); if (set) { - _gamma = gamma; + _gamma = gamma; } return set; @@ -5664,7 +5684,7 @@ atexit_function(void) { //////////////////////////////////////////////////////////////////// // Function: DXGraphicsStateGuardian9::get_supports_cg_profile // Access: Public, Virtual -// Description: Returns true if this particular GSG supports the +// Description: Returns true if this particular GSG supports the // specified Cg Shader Profile. //////////////////////////////////////////////////////////////////// bool DXGraphicsStateGuardian9:: @@ -5673,7 +5693,7 @@ get_supports_cg_profile(const string &name) const { return false; #else CGprofile profile = cgGetProfile(name.c_str()); - + if (profile == CG_PROFILE_UNKNOWN) { dxgsg9_cat.error() << name <<", unknown Cg-profile\n"; return false; diff --git a/panda/src/dxgsg9/dxGraphicsStateGuardian9.h b/panda/src/dxgsg9/dxGraphicsStateGuardian9.h index c3d3c72bf7..0eae7eaa71 100755 --- a/panda/src/dxgsg9/dxGraphicsStateGuardian9.h +++ b/panda/src/dxgsg9/dxGraphicsStateGuardian9.h @@ -36,9 +36,7 @@ #include "vertexElementArray.h" #include "dxShaderContext9.h" - -enum GsgPageType -{ +enum GsgPageType { GPT_Texture, GPT_VertexBuffer, GPT_IndexBuffer, @@ -52,6 +50,8 @@ class DXTextureContext9; class DXVertexBufferContext9; class DXIndexBufferContext9; +class wdxGraphicsBuffer9; + //////////////////////////////////////////////////////////////////// // Class : DXGraphicsStateGuardian9 // Description : A GraphicsStateGuardian for rendering into DirectX9 @@ -265,7 +265,7 @@ protected: public: DXScreenData *_screen; - + protected: LPDIRECT3DDEVICE9 _d3d_device; // same as _screen->_d3d_device, cached for spd IDirect3DSwapChain9 *_swap_chain; @@ -374,7 +374,7 @@ protected: list _graphics_buffer_list; - int _supports_gamma_calibration; + int _supports_gamma_calibration; static LPDIRECT3DDEVICE9 _cg_device; diff --git a/panda/src/dxgsg9/dxTextureContext9.cxx b/panda/src/dxgsg9/dxTextureContext9.cxx index 9fd73be358..9c56089393 100755 --- a/panda/src/dxgsg9/dxTextureContext9.cxx +++ b/panda/src/dxgsg9/dxTextureContext9.cxx @@ -135,13 +135,13 @@ create_texture(DXScreenData &scrn) { bool texture_wants_compressed = false; Texture::CompressionMode compression_mode = tex->get_ram_image_compression(); bool texture_stored_compressed = compression_mode != Texture::CM_off; - + if (texture_stored_compressed) { - texture_wants_compressed = true; + texture_wants_compressed = true; } else { if (tex->get_compression() == Texture::CM_off) { // no compression - } else { + } else { if (tex->get_compression() == Texture::CM_default) { // default = use "compressed-textures" config setting if (compressed_textures) { @@ -150,9 +150,9 @@ create_texture(DXScreenData &scrn) { } else { texture_wants_compressed = true; } - } + } } - + switch (tex->get_texture_type()) { case Texture::TT_1d_texture: case Texture::TT_2d_texture: @@ -197,7 +197,9 @@ create_texture(DXScreenData &scrn) { if ((tex->get_format() == Texture::F_luminance_alpha)|| (tex->get_format() == Texture::F_luminance_alphamask) || - (tex->get_format() == Texture::F_luminance)) { + (tex->get_format() == Texture::F_luminance) || + (tex->get_format() == Texture::F_sluminance_alpha) || + (tex->get_format() == Texture::F_sluminance)) { needs_luminance = true; } @@ -232,7 +234,7 @@ create_texture(DXScreenData &scrn) { _d3d_format = D3DFMT_A8R8G8B8; break; } - + // make sure we handled all the possible cases nassertr(_d3d_format != D3DFMT_UNKNOWN, false); @@ -398,9 +400,9 @@ create_texture(DXScreenData &scrn) { if (compress_texture) { if (num_alpha_bits <= 1) { - CHECK_FOR_FMT(DXT1); + CHECK_FOR_FMT(DXT1); } else if (num_alpha_bits <= 4) { - CHECK_FOR_FMT(DXT3); + CHECK_FOR_FMT(DXT3); } else { CHECK_FOR_FMT(DXT5); } @@ -425,7 +427,7 @@ create_texture(DXScreenData &scrn) { // array (the texture array contains num_color_channels*8bits) case 128: - // check if format is supported + // check if format is supported if (scrn._supports_rgba32_texture_format) { target_pixel_format = D3DFMT_A32B32G32R32F; } @@ -435,7 +437,7 @@ create_texture(DXScreenData &scrn) { goto found_matching_format; case 64: - // check if format is supported + // check if format is supported if (scrn._supports_rgba16f_texture_format) { target_pixel_format = D3DFMT_A16B16G16R16F; } @@ -443,7 +445,7 @@ create_texture(DXScreenData &scrn) { target_pixel_format = scrn._render_to_texture_d3d_format; } goto found_matching_format; - + case 32: if (!((num_color_channels == 3) || (num_color_channels == 4))) break; //bail @@ -502,7 +504,7 @@ create_texture(DXScreenData &scrn) { CHECK_FOR_FMT(X8R8G8B8); CHECK_FOR_FMT(A8R8G8B8); - + // no 24-bit or 32 fmt. look for 16 bit fmt (higher res 565 1st) CHECK_FOR_FMT(R5G6B5); CHECK_FOR_FMT(X1R5G5B5); @@ -782,13 +784,13 @@ create_texture(DXScreenData &scrn) { // REQUIRED PARAMETERS _managed = false; _is_render_target = true; - + pool = D3DPOOL_DEFAULT; usage = D3DUSAGE_RENDERTARGET; if (target_bpp <= 32 ) { target_pixel_format = scrn._render_to_texture_d3d_format; } - + dxgsg9_cat.debug () << "*** RENDER TO TEXTURE ***: format " << D3DFormatStr(target_pixel_format) @@ -848,7 +850,7 @@ create_texture(DXScreenData &scrn) { data_size *= 6; } update_data_size_bytes(data_size); - + int attempts; if (dxgsg9_cat.is_debug()) { @@ -882,7 +884,7 @@ create_texture(DXScreenData &scrn) { hr = scrn._d3d_device->CreateTexture (target_width, target_height, mip_level_count, usage, target_pixel_format, pool, &_d3d_2d_texture, NULL); - _d3d_texture = _d3d_2d_texture; + _d3d_texture = _d3d_2d_texture; break; case Texture::TT_3d_texture: @@ -952,7 +954,7 @@ create_texture(DXScreenData &scrn) { scrn._dxgsg9->get_engine()->texture_uploaded(tex); } mark_loaded(); - + return true; error_exit: @@ -967,7 +969,7 @@ create_texture(DXScreenData &scrn) { //////////////////////////////////////////////////////////////////// // Function: DXTextureContext9::create_simple_texture // Access: Public -// Description: +// Description: //////////////////////////////////////////////////////////////////// bool DXTextureContext9:: create_simple_texture(DXScreenData &scrn) { @@ -993,7 +995,7 @@ create_simple_texture(DXScreenData &scrn) { hr = scrn._d3d_device->CreateTexture (target_width, target_height, mip_level_count, usage, target_pixel_format, pool, &_d3d_2d_texture, NULL); - _d3d_texture = _d3d_2d_texture; + _d3d_texture = _d3d_2d_texture; if (FAILED(hr)) { dxgsg9_cat.error() << "D3D create_simple_texture failed!" << D3DERRORSTRING(hr); @@ -1032,13 +1034,13 @@ create_simple_texture(DXScreenData &scrn) { RELEASE(surface, dxgsg9, "create_simple_texture Surface", RELEASE_ONCE); } - + if (FAILED(hr)) { dxgsg9_cat.debug () << "*** fill_d3d_texture_pixels failed ***: format " << target_pixel_format << "\n"; - + goto error_exit; } @@ -1084,7 +1086,7 @@ bool DXTextureContext9:: extract_texture_data(DXScreenData &screen) { bool state; HRESULT hr; - + state = false; Texture *tex = get_texture(); if (tex->get_texture_type() != Texture::TT_2d_texture) { @@ -1147,7 +1149,7 @@ extract_texture_data(DXScreenData &screen) { default: dxgsg9_cat.error() - << "Cannot extract texture data: unhandled surface format " + << "Cannot extract texture data: unhandled surface format " << desc.Format << "\n"; return state; } @@ -1164,13 +1166,13 @@ extract_texture_data(DXScreenData &screen) { if (_is_render_target) { IDirect3DSurface9* source_surface; IDirect3DSurface9* destination_surface; - + source_surface = 0; destination_surface = 0; - + hr = _d3d_2d_texture -> GetSurfaceLevel (0, &source_surface); - if (hr == D3D_OK) { - + if (hr == D3D_OK) { + D3DPOOL pool; D3DSURFACE_DESC surface_description; @@ -1186,7 +1188,7 @@ extract_texture_data(DXScreenData &screen) { NULL); if (hr == D3D_OK) { if (source_surface && destination_surface) { - hr = screen._d3d_device -> GetRenderTargetData (source_surface, destination_surface); + hr = screen._d3d_device -> GetRenderTargetData (source_surface, destination_surface); if (hr == D3D_OK) { D3DLOCKED_RECT rect; @@ -1200,13 +1202,13 @@ extract_texture_data(DXScreenData &screen) { int surface_bytes_per_line; unsigned char *surface_pointer; - + bytes_per_line = surface_description.Width * this -> d3d_format_to_bytes_per_pixel (surface_description.Format); size = bytes_per_line * surface_description.Height; surface_bytes_per_line = rect.Pitch; surface_pointer = (unsigned char *) rect.pBits; - + PTA_uchar image = PTA_uchar::empty_array(size); int offset; @@ -1217,29 +1219,29 @@ extract_texture_data(DXScreenData &screen) { memcpy (&image [offset], surface_pointer, bytes_per_line); offset += bytes_per_line; - surface_pointer += surface_bytes_per_line; + surface_pointer += surface_bytes_per_line; } tex->set_ram_image(image, Texture::CM_off); state = true; - + destination_surface -> UnlockRect(); } } - } - + } + destination_surface -> Release ( ); } else { dxgsg9_cat.error() << "CreateImageSurface failed in extract_texture_data()" - << D3DERRORSTRING(hr); - } + << D3DERRORSTRING(hr); + } source_surface -> Release ( ); } } - else { + else { for (int n = 0; n < num_levels; ++n) { D3DLOCKED_RECT rect; hr = _d3d_2d_texture->LockRect(n, &rect, NULL, D3DLOCK_READONLY); @@ -1248,11 +1250,11 @@ extract_texture_data(DXScreenData &screen) { << "Texture::LockRect() failed! level = " << n << " " << D3DERRORSTRING(hr); return state; } - + int x_size = tex->get_expected_mipmap_x_size(n); int y_size = tex->get_expected_mipmap_y_size(n); PTA_uchar image; - + if (compression == Texture::CM_off) { // Uncompressed, but we have to respect the pitch. int pitch = x_size * tex->get_num_components() * tex->get_component_width(); @@ -1273,7 +1275,7 @@ extract_texture_data(DXScreenData &screen) { source += rect.Pitch; } } - + } else { // Compressed; just copy the data verbatim. int size = rect.Pitch * (y_size / div); @@ -1288,10 +1290,10 @@ extract_texture_data(DXScreenData &screen) { tex->set_ram_mipmap_image(n, image); } } - + state = true; } - + return state; } @@ -1560,7 +1562,7 @@ d3d_surface_to_texture(RECT &source_rect, IDirect3DSurface9 *d3d_surface, //////////////////////////////////////////////////////////////////// // Function: calculate_row_byte_length // Access: Private, hidden -// Description: local helper function, which calculates the +// Description: local helper function, which calculates the // 'row_byte_length' or 'pitch' needed for calling // D3DXLoadSurfaceFromMemory. // Takes compressed formats (DXTn) into account. @@ -1596,12 +1598,12 @@ static UINT calculate_row_byte_length (int width, int num_color_channels, D3DFOR // Access: Private // Description: Called from fill_d3d_texture_pixels, this function // fills a single mipmap with texture data. -// Takes care of all necessery conversions and error +// Takes care of all necessary conversions and error // handling. //////////////////////////////////////////////////////////////////// HRESULT DXTextureContext9::fill_d3d_texture_mipmap_pixels(int mip_level, int depth_index, D3DFORMAT source_format) { - // This whole function was refactored out of fill_d3d_texture_pixels to make the code + // This whole function was refactored out of fill_d3d_texture_pixels to make the code // more readable and to avoid code duplication. IDirect3DSurface9 *mip_surface = NULL; bool using_temp_buffer = false; @@ -1617,7 +1619,7 @@ HRESULT DXTextureContext9::fill_d3d_texture_mipmap_pixels(int mip_level, int dep pixels += view_size * get_view(); size_t page_size = get_texture()->get_expected_ram_mipmap_page_size(mip_level); pixels += page_size * depth_index; - + if (get_texture()->get_texture_type() == Texture::TT_cube_map) { nassertr(IS_VALID_PTR(_d3d_cube_texture), E_FAIL); hr = _d3d_cube_texture->GetCubeMapSurface((D3DCUBEMAP_FACES)depth_index, mip_level, &mip_surface); @@ -1645,6 +1647,10 @@ HRESULT DXTextureContext9::fill_d3d_texture_mipmap_pixels(int mip_level, int dep // dithering)??) mip_filter = D3DX_FILTER_LINEAR ; //| D3DX_FILTER_DITHER; //dithering looks ugly on i810 for 4444 textures + if (Texture::is_srgb(get_texture()->get_format())) { + mip_filter |= D3DX_FILTER_SRGB; + } + // D3DXLoadSurfaceFromMemory will load black luminance and we want // full white, so convert to explicit luminance-alpha format if (_d3d_format == D3DFMT_A8) { @@ -1671,7 +1677,7 @@ HRESULT DXTextureContext9::fill_d3d_texture_mipmap_pixels(int mip_level, int dep source_format = D3DFMT_A8L8; source_row_byte_length = width * sizeof(USHORT); pixels = (BYTE*)temp_buffer; - } + } else if (component_width != 1) { // Convert from 16-bit per channel (or larger) format down to // 8-bit per channel. This throws away precision in the @@ -1756,7 +1762,7 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { // The texture doesn't have an image to load. That's ok; it // might be a texture we've rendered to by frame buffer // operations or something. - if (tex->get_render_to_texture()) { + if (tex->get_render_to_texture()) { HRESULT result; if (_d3d_2d_texture) { @@ -1777,7 +1783,7 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { depth_stencil_surface = 0; if (device -> GetDepthStencilSurface (&depth_stencil_surface) == D3D_OK) { if (device -> SetDepthStencilSurface (NULL) == D3D_OK) { - + } } @@ -1791,7 +1797,7 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { } } - // restore depth stencil + // restore depth stencil if (depth_stencil_surface) { device -> SetDepthStencilSurface (depth_stencil_surface); depth_stencil_surface -> Release(); @@ -1806,7 +1812,7 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { surface -> Release(); } } - + return S_OK; } return E_FAIL; @@ -1842,7 +1848,7 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { } for (unsigned int di = 0; di < orig_depth; di++) { - + // fill top level mipmap hr = fill_d3d_texture_mipmap_pixels(0, di, source_format); if (FAILED(hr)) { @@ -1861,8 +1867,8 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { if (FAILED(hr)) { return hr; // error message was already output in fill_d3d_texture_mipmap_pixels } - } - } + } + } else { // mipmaps need to be generated, either use autogen or d3dx functions @@ -1888,6 +1894,10 @@ fill_d3d_texture_pixels(DXScreenData &scrn, bool compress_texture) { mip_filter_flags = D3DX_FILTER_TRIANGLE; } + if (Texture::is_srgb(tex->get_format())) { + mip_filter_flags |= D3DX_FILTER_SRGB; + } + // mip_filter_flags |= D3DX_FILTER_DITHER; hr = D3DXFilterTexture(_d3d_texture, (PALETTEENTRY*)NULL, 0, mip_filter_flags); @@ -1934,7 +1944,7 @@ fill_d3d_volume_texture_pixels(DXScreenData &scrn) { if (!scrn._dxgsg9->get_supports_compressed_texture_format(image_compression)) { image = tex->get_uncompressed_ram_image(); image_compression = Texture::CM_off; - } + } if (image.is_null()) { // The texture doesn't have an image to load. That's ok; it @@ -1991,6 +2001,10 @@ fill_d3d_volume_texture_pixels(DXScreenData &scrn) { // dithering)??) level_0_filter = D3DX_FILTER_LINEAR ; //| D3DX_FILTER_DITHER; //dithering looks ugly on i810 for 4444 textures + if (Texture::is_srgb(tex->get_format())) { + level_0_filter |= D3DX_FILTER_SRGB; + } + // D3DXLoadSurfaceFromMemory will load black luminance and we want // full white, so convert to explicit luminance-alpha format if (_d3d_format == D3DFMT_A8) { @@ -2070,6 +2084,10 @@ fill_d3d_volume_texture_pixels(DXScreenData &scrn) { mip_filter_flags = D3DX_FILTER_TRIANGLE; } + if (Texture::is_srgb(tex->get_format())) { + mip_filter_flags |= D3DX_FILTER_SRGB; + } + // mip_filter_flags| = D3DX_FILTER_DITHER; hr = D3DXFilterTexture(_d3d_texture, (PALETTEENTRY*)NULL, 0, @@ -2167,6 +2185,17 @@ get_bits_per_pixel(Texture::Format format, int *alphbits) { case Texture::F_rgba32: *alphbits = 32; return 128; + + case Texture::F_srgb: + return 24; + case Texture::F_srgb_alpha: + *alphbits = 8; + return 32; + case Texture::F_sluminance: + return 8; + case Texture::F_sluminance_alpha: + *alphbits = 8; + return 16; } return 8; } @@ -2180,7 +2209,7 @@ PN_stdfloat DXTextureContext9:: d3d_format_to_bytes_per_pixel (D3DFORMAT format) { PN_stdfloat bytes_per_pixel; - + bytes_per_pixel = 0.0f; switch (format) { @@ -2246,6 +2275,6 @@ d3d_format_to_bytes_per_pixel (D3DFORMAT format) bytes_per_pixel = 1.0f; break; } - + return bytes_per_pixel; } diff --git a/panda/src/dxgsg9/wdxGraphicsPipe9.cxx b/panda/src/dxgsg9/wdxGraphicsPipe9.cxx index 8ad1f40266..10aa6b8f00 100755 --- a/panda/src/dxgsg9/wdxGraphicsPipe9.cxx +++ b/panda/src/dxgsg9/wdxGraphicsPipe9.cxx @@ -139,7 +139,7 @@ make_output(const string &name, // Early failure - if we are sure that this buffer WONT // meet specs, we can bail out early. if ((flags & BF_fb_props_optional) == 0) { - if ((fb_prop.get_indexed_color() > 0)|| + if (fb_prop.get_indexed_color() || (fb_prop.get_back_buffers() > 0)|| (fb_prop.get_accum_bits() > 0)|| (fb_prop.get_multisamples() > 0)) { @@ -649,7 +649,7 @@ search_for_valid_displaymode(DXScreenData &scrn, continue; } - // disable refresh rate checking since SLI video cards may use + // disable refresh rate checking since SLI video cards may use // refresh rates less than 60 if (0) { if ((dispmode.RefreshRate<60) && (dispmode.RefreshRate>1)) { @@ -663,7 +663,7 @@ search_for_valid_displaymode(DXScreenData &scrn, continue; } } - + // Note no attempt is made to verify if format will work at // requested size, so even if this call succeeds, could still get // an out-of-video-mem error @@ -956,7 +956,7 @@ const char *D3DFormatStr(D3DFORMAT fmt) { CASESTR(D3DFMT_D24X4S4); CASESTR(D3DFMT_VERTEXDATA); CASESTR(D3DFMT_INDEX16); - CASESTR(D3DFMT_INDEX32); + CASESTR(D3DFMT_INDEX32); CASESTR(D3DFMT_A16B16G16R16F); CASESTR(D3DFMT_A32B32G32R32F); } diff --git a/panda/src/dxgsg9/wdxGraphicsWindow9.cxx b/panda/src/dxgsg9/wdxGraphicsWindow9.cxx index 21802d7a88..76b6d080b4 100755 --- a/panda/src/dxgsg9/wdxGraphicsWindow9.cxx +++ b/panda/src/dxgsg9/wdxGraphicsWindow9.cxx @@ -252,7 +252,7 @@ verify_window_sizes(int numsizes, int *dimen) { void wdxGraphicsWindow9:: close_window() { if (wdxdisplay9_cat.is_debug()) { - wdxdisplay9_cat.debug() + wdxdisplay9_cat.debug() << "wdxGraphicsWindow9::close_window() " << this << "\n"; } @@ -300,7 +300,7 @@ open_window() { // window. { WindowProperties resized_props; - resized_props.set_size(_wcontext._display_mode.Width, + resized_props.set_size(_wcontext._display_mode.Width, _wcontext._display_mode.Height); _properties.add_properties(resized_props); } @@ -420,17 +420,17 @@ void wdxGraphicsWindow9:: handle_reshape() { GdiFlush(); WinGraphicsWindow::handle_reshape(); - - if (_dxgsg != NULL) { + + if (_dxgsg != NULL && _dxgsg->_d3d_device != NULL) { // create the new resized rendertargets WindowProperties props = get_properties(); int x_size = props.get_x_size(); int y_size = props.get_y_size(); - + if (_wcontext._presentation_params.BackBufferWidth != x_size || _wcontext._presentation_params.BackBufferHeight != y_size) { bool resize_succeeded = reset_device_resize_window(x_size, y_size); - + if (wdxdisplay9_cat.is_debug()) { if (!resize_succeeded) { wdxdisplay9_cat.debug() @@ -708,7 +708,7 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer if (dx_disable_driver_management_ex) { dwBehaviorFlags |= D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX; } - + if (is_fullscreen()) { // CREATE FULLSCREEN BUFFERS @@ -751,11 +751,11 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer } //From d3d8caps.h - //D3DPRESENT_INTERVAL_DEFAULT = 0x00000000L + //D3DPRESENT_INTERVAL_DEFAULT = 0x00000000L //#define D3DPRESENT_INTERVAL_ONE 0x00000001L //Next line is really sloppy, should either be D3DPRESENT_INTERVAL_DEFAULT or D3DPRESENT_INTERVAL_ONE //not a direct number! but I'm not going to touch it because it's working as is. Zhao 12/15/2011 - presentation_params->PresentationInterval = 0; + presentation_params->PresentationInterval = 0; //ATI 5450 doesn't like D3DSWAPEFFECT_FLIP presentation_params->SwapEffect = D3DSWAPEFFECT_DISCARD; @@ -803,7 +803,7 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer PRINT_REFCNT(wdxdisplay9, _wcontext._d3d_device); - if (presentation_params->EnableAutoDepthStencil) { + if (presentation_params->EnableAutoDepthStencil) { int depth_bits; int stencil_bits; @@ -846,7 +846,7 @@ create_screen_buffers_and_device(DXScreenData &display, bool force_16bpp_zbuffer wdxdisplay9_cat.error() << "unknown depth stencil format " << presentation_params->AutoDepthStencilFormat; break; } - + _fb_properties.set_stencil_bits(stencil_bits); _fb_properties.set_depth_bits(depth_bits); } else { @@ -1118,16 +1118,16 @@ consider_device(wdxGraphicsPipe9 *dxpipe, DXDeviceInfo *device_info) { if (is_fullscreen()) { bool bCouldntFindValidZBuf; - + dxpipe->search_for_valid_displaymode(_wcontext, dwRenderWidth, dwRenderHeight, bNeedZBuffer, bWantStencil, &_wcontext._supported_screen_depths_mask, &bCouldntFindValidZBuf, &pixFmt, dx_force_16bpp_zbuffer, true); - + // note I'm not saving refresh rate, will just use adapter // default at given res for now - + if (pixFmt == D3DFMT_UNKNOWN) { wdxdisplay9_cat.error() << (bCouldntFindValidZBuf ? "Couldnt find valid zbuffer format to go with FullScreen mode" : "No supported FullScreen modes") diff --git a/panda/src/wgldisplay/wglGraphicsPipe.cxx b/panda/src/wgldisplay/wglGraphicsPipe.cxx index d0af76a204..f4695c3f16 100644 --- a/panda/src/wgldisplay/wglGraphicsPipe.cxx +++ b/panda/src/wgldisplay/wglGraphicsPipe.cxx @@ -170,7 +170,7 @@ make_output(const string &name, _fbo_multisample = 16; } if ((flags & BF_fb_props_optional)==0) { - if ((fb_prop.get_indexed_color() > 0)|| + if (fb_prop.get_indexed_color() || (fb_prop.get_back_buffers() > 0)|| (fb_prop.get_accum_bits() > 0)|| (fb_prop.get_multisamples() > _fbo_multisample)) { From 9151cd0d1d2862e9d56836c119beec89c2b0b81b Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 20:07:46 +0000 Subject: [PATCH 21/27] Fix compile issues, slight code cleanup --- direct/src/http/baseincomingset.h | 18 ++--- direct/src/http/baseincomingset.i | 120 +++++++++++++++--------------- 2 files changed, 67 insertions(+), 71 deletions(-) diff --git a/direct/src/http/baseincomingset.h b/direct/src/http/baseincomingset.h index 525e8da037..d56acddd1c 100644 --- a/direct/src/http/baseincomingset.h +++ b/direct/src/http/baseincomingset.h @@ -4,10 +4,10 @@ #include #include "socket_base.h" -enum CloseState +enum CloseState { - ConnectionDoNotClose, - ConnectionDoClose + ConnectionDoNotClose, + ConnectionDoClose }; // RHH //////////////////////////////////////////////////////////////////// @@ -20,15 +20,15 @@ enum CloseState // // The general operation if get connection.. // do you have a message -// process message +// process message // go back to do you have a message or close connection // // //////////////////////////////////////////////////////////////////// template < class _INCLASS1,class _IN_LISTEN, class MESSAGE_READER_BUF, class MESSAGE_READER_UPPASS> class BaseIncomingSet : public std::list<_INCLASS1 *> { - typedef std::list<_INCLASS1 *> BaseClass; - typedef TYPENAME BaseClass::iterator iterator; + typedef std::list<_INCLASS1 *> BaseClass; + typedef TYPENAME BaseClass::iterator iterator; _IN_LISTEN _Listener; inline void AddFromListener(void); @@ -39,7 +39,7 @@ public: // typedef typename BaseIncomingSet<_INCLASS1, _IN_LISTEN, MESSAGE_READER_BUF, MESSAGE_READER_UPPASS>::LinkNode LinkNode; -// typedef SentDblLinkListNode_Gm SentDblLinkListNode_Gm; +// typedef SentDblLinkListNode_Gm SentDblLinkListNode_Gm; inline BaseIncomingSet(void); inline BaseIncomingSet(BaseIncomingSet &in); virtual ~BaseIncomingSet(); @@ -50,10 +50,6 @@ public: virtual CloseState ProcessNewConnection(SOCKET socket); inline void AddToFDSet(Socket_fdset &set); - - - - // inline LinkNode * GetRoot(void) { return &this->sentenal; }; BaseIncomingSet &operator=( BaseIncomingSet &inval); void Reset(); diff --git a/direct/src/http/baseincomingset.i b/direct/src/http/baseincomingset.i index 8d377b3792..32cdf8eaee 100644 --- a/direct/src/http/baseincomingset.i +++ b/direct/src/http/baseincomingset.i @@ -1,19 +1,19 @@ //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddFromListener // Description : Read incoming connections off the listener -// -// Return type : inline void +// +// Return type : inline void // Argument : void //////////////////////////////////////////////////////////////////// -template +template inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddFromListener(void) { Socket_Address Addr1; SOCKET newsck; - - + + while(_Listener.GetIncomingConnection(newsck,Addr1) == true) - { + { CloseState cl= ProcessNewConnection(newsck); if(cl == ConnectionDoNotClose) { @@ -22,52 +22,52 @@ inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READ } else DO_CLOSE(newsck); - } - + } + } //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpReader // Description : Tries to read a record off the incoming socket -// -// Return type : inline void +// +// Return type : inline void // Argument : Time_Clock currentTime //////////////////////////////////////////////////////////////////// -template +template inline int BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpReader(Time_Clock ¤tTime) -{ +{ MESSAGE_READER_BUF message; - + iterator lpNext, lp; for (lpNext = lp = BaseClass::begin(); lp != BaseClass::end() ; lp = lpNext) { - lpNext++; - + lpNext++; + int ans = (*lp)->ReadIt(message, sizeof(message),currentTime); if(ans < 0) { delete *lp; - erase(lp); - } + this->erase(lp); + } if(ans > 0) { CloseState cs = (*lp)->ProcessMessage(message,currentTime); if( cs == ConnectionDoClose) { delete *lp; - erase(lp); + this->erase(lp); } } - } - return 0; + } + return 0; } //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddAConection // Description : Adds a member to the base container -// -// Return type : inline void +// +// Return type : inline void // Argument : _INCLASS1 * newt //////////////////////////////////////////////////////////////////// -template +template inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddAConection(_INCLASS1 * newt) { push_back(newt); @@ -75,17 +75,17 @@ inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READ //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::BaseIncomingSet // Description : core constructor -// -// Return type : inline +// +// Return type : inline // Argument : void //////////////////////////////////////////////////////////////////// -template +template inline BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::BaseIncomingSet(void) { - + } -template +template BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::BaseIncomingSet(BaseIncomingSet &in) { @@ -93,10 +93,10 @@ BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>:: //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::~BaseIncomingSet // Description : The Destructot .. will delete all members.. ?? -// -// Return type : +// +// Return type : //////////////////////////////////////////////////////////////////// -template +template BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::~BaseIncomingSet() { for(iterator ii = BaseClass::begin(); ii != BaseClass::end(); ii++) @@ -105,76 +105,76 @@ BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>:: //////////////////////////////////////////////////////////////////// // Function name : & BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::GetListener // Description : Retyurns a pointer to the listener in this class -// -// Return type : inline _IN_LISTEN +// +// Return type : inline _IN_LISTEN // Argument : void //////////////////////////////////////////////////////////////////// -template -inline _IN_LISTEN & BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::GetListener(void) -{ - return this->Listener; +template +inline _IN_LISTEN & BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::GetListener(void) +{ + return this->Listener; }; //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::init // Description : the second part of the 2 phase power up.. Opends the listener -// -// Return type : inline bool +// +// Return type : inline bool // Argument : Socket_Address &WhereFrom //////////////////////////////////////////////////////////////////// -template +template inline bool BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::init(Socket_Address &WhereFrom) { if(_Listener.OpenForListen(WhereFrom,true) != true) - return false; + return false; _Listener.SetNonBlocking(); return true; } //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpAll // Description : THis is the polled interface to this class -// -// Return type : inline void +// +// Return type : inline void // Argument : Time_Clock ¤tTime //////////////////////////////////////////////////////////////////// -template +template inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpAll(Time_Clock ¤tTime) { PumpReader(currentTime); // I MOVED ORDER TO FINE TUNE THE READ OPERATIONS - AddFromListener(); + AddFromListener(); } //////////////////////////////////////////////////////////////////// // Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::ProcessNewConnection -// Description : this is the vertual function call when a new connection is created +// Description : this is the vertual function call when a new connection is created // manly here for loging if needed... -// -// Return type : CloseState +// +// Return type : CloseState // Argument : SOCKET socket //////////////////////////////////////////////////////////////////// -template +template CloseState BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::ProcessNewConnection(SOCKET socket) { return ConnectionDoNotClose; } //////////////////////////////////////////////////////////////////// // Function name : void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddToFDSet -// Description : Add LIstener and Client to the FD set for polled reading -// -// Return type : inline +// Description : Add LIstener and Client to the FD set for polled reading +// +// Return type : inline // Argument : Socket_Selector &set //////////////////////////////////////////////////////////////////// -template +template inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddToFDSet(Socket_fdset &set1) -{ +{ if(_Listener.Active()) set1.setForSocket(_Listener); iterator lp; - + for (lp = BaseClass::begin(); lp != BaseClass::end(); lp = lp++) set1.setForSocket((*lp)->val); } -template +template inline BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS> &BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::operator= (BaseIncomingSet &inval) { @@ -184,18 +184,18 @@ inline BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UP } -template +template inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::Reset() { _Listener.Close(); iterator lpNext, lp; for (lpNext = lp = BaseClass::begin(); lp != BaseClass::end() ; lp = lpNext) { - lpNext++; + lpNext++; (*lp)->Reset(); delete *lp; - erase(lp); - } + this->erase(lp); + } } From 43805f47bbbb9b1d1aff21ccc9338263892f063a Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 20:43:59 +0000 Subject: [PATCH 22/27] Improve runtime installer, add 64-bit support --- direct/src/p3d/p3dWrapper.c | 97 +++++++++++++------ direct/src/plugin_installer/make_installer.py | 19 +++- direct/src/plugin_installer/p3d_installer.nsi | 97 +++++++++++++++---- makepanda/makepanda.py | 77 +++++++++------ 4 files changed, 201 insertions(+), 89 deletions(-) diff --git a/direct/src/p3d/p3dWrapper.c b/direct/src/p3d/p3dWrapper.c index 7720847823..ef96e036f9 100644 --- a/direct/src/p3d/p3dWrapper.c +++ b/direct/src/p3d/p3dWrapper.c @@ -23,12 +23,21 @@ #include #include #include +#include #define BUFFER_SIZE 1024 +/* It makes sense to use "App Paths\panda3d.exe". However, Microsoft + decided in their infinite wisdom to disable Redirection for that + key from Windows 7 onward, so we can't rely on it producing a + result appropriate to the right architecture when both the 32-bit + and 64-bit versions of the runtime are installed. Beh. */ + +#define UNINST_KEY "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Panda3D Game Engine" + int main (int argc, char* argv[]) { int i; - char buffer [BUFFER_SIZE]; + char buffer[BUFFER_SIZE]; char* p3dfile; char* runtime = NULL; DWORD size; @@ -37,56 +46,82 @@ int main (int argc, char* argv[]) { char *cmd; char *newcmd; HKEY hKey = 0; - char buf [1024] = {0}; - DWORD dwType = 0; + char buf[1024] = {0}; + DWORD dwType = REG_SZ; DWORD dwBufSize = sizeof(buf); - size = GetModuleFileName (NULL, buffer, BUFFER_SIZE); + size = GetModuleFileName(NULL, buffer, BUFFER_SIZE); assert (size > 0); /* Chop off the .exe and replace it by .p3d. */ - p3dfile = (char*) malloc (size + 1); - memcpy (p3dfile, buffer, size); - p3dfile [size] = 0; - memcpy (p3dfile + size - 3, "p3d", 3); + p3dfile = (char*) _alloca(size + 1); + memcpy(p3dfile, buffer, size); + p3dfile[size] = 0; + memcpy(p3dfile + size - 3, "p3d", 3); - /* Find the Panda3D applet\DefaultIcon key and extract the path to the runtime from there. */ - if (RegOpenKey (HKEY_CLASSES_ROOT, "Panda3D applet\\DefaultIcon", &hKey) == ERROR_SUCCESS) { - dwType = REG_SZ; - if (RegQueryValueEx(hKey, 0, 0, &dwType, (BYTE*) buf, &dwBufSize) == ERROR_SUCCESS) { - for (i = dwBufSize - 1; i >= 0; --i) { - if (buf [i] == '/' || buf [i] == '\\') { - runtime = (char*) malloc (i + 13); - memcpy (runtime, buf, i); - runtime [i] = 0; - strcat (runtime, "\\panda3d.exe"); - break; - } + /* Find the location of panda3d.exe using the registry path. */ +#ifdef _WIN64 + /* If we're on 64-bit Windows, try the 64-bit registry first. */ + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, UNINST_KEY, 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &hKey) == ERROR_SUCCESS) { + if (RegQueryValueEx(hKey, "DisplayIcon", 0, &dwType, (BYTE*) buf, &dwBufSize) == ERROR_SUCCESS) { + char *slash = strrchr(buf, '\\'); + if (slash != NULL) { + strcpy(slash, "\\panda3d.exe"); + runtime = buf; } - } else { - fprintf (stderr, "Failed to read registry key. Try reinstalling the Panda3D Runtime.\n"); - return 1; } RegCloseKey(hKey); - } else { - fprintf (stderr, "The Panda3D Runtime does not appear to be installed!\n"); - return 1; + } +#endif + + /* On 32-bit Windows, or no 64-bit Runtime installed. Try 32-bit registry. */ + if (runtime == NULL) { + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, UNINST_KEY, 0, KEY_QUERY_VALUE | KEY_WOW64_32KEY, &hKey) == ERROR_SUCCESS) { + if (RegQueryValueEx(hKey, "DisplayIcon", 0, &dwType, (BYTE*) buf, &dwBufSize) == ERROR_SUCCESS) { + char *slash = strrchr(buf, '\\'); + if (slash != NULL) { + strcpy(slash, "\\panda3d.exe"); + runtime = buf; + } + } + RegCloseKey(hKey); + } + } + + /* Backward compatibility: Runtime 1.0.4 and below looked for the below key, even though the + above keys should work fine, but let's just be certain. + Find the Panda3D applet\DefaultIcon key and extract the path to the runtime from there. */ + if (runtime == NULL) { + if (RegOpenKey(HKEY_CLASSES_ROOT, "Panda3D applet\\DefaultIcon", &hKey) == ERROR_SUCCESS) { + if (RegQueryValueEx(hKey, 0, 0, &dwType, (BYTE*) buf, &dwBufSize) == ERROR_SUCCESS) { + char *slash = strrchr(buf, '\\'); + if (slash != NULL) { + strcpy(slash, "\\panda3d.exe"); + runtime = buf; + } + } else { + fprintf(stderr, "Failed to read registry key. Try reinstalling the Panda3D Runtime.\n"); + return 1; + } + RegCloseKey(hKey); + } else { + fprintf(stderr, "The Panda3D Runtime does not appear to be installed!\n"); + return 1; + } } if (runtime == NULL) { - fprintf (stderr, "Failed to find panda3d.exe in registry. Try reinstalling the Panda3D Runtime.\n"); + fprintf(stderr, "Failed to find panda3d.exe in registry. Try reinstalling the Panda3D Runtime.\n"); return 1; } /* Build the command-line and run panda3d.exe. */ cmd = GetCommandLine(); - newcmd = (char*) malloc (strlen(runtime) + strlen(p3dfile) + strlen (cmd) - strlen (argv[0]) + 7); - sprintf (newcmd, "\"%s\" \"%s\" %s", runtime, p3dfile, cmd + strlen (argv[0])); + newcmd = (char*) _alloca(strlen(runtime) + strlen(p3dfile) + strlen(cmd) - strlen (argv[0]) + 7); + sprintf(newcmd, "\"%s\" \"%s\" %s", runtime, p3dfile, cmd + strlen(argv[0])); memset(&si, 0, sizeof(si)); si.cb = sizeof(STARTUPINFO); if (CreateProcess(runtime, newcmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { WaitForSingleObject(pi.hProcess, INFINITE); } - free (newcmd); return 0; } - diff --git a/direct/src/plugin_installer/make_installer.py b/direct/src/plugin_installer/make_installer.py index f98950026e..c9b3f5124a 100755 --- a/direct/src/plugin_installer/make_installer.py +++ b/direct/src/plugin_installer/make_installer.py @@ -40,7 +40,7 @@ parser.add_option('-l', '--license', dest = 'license', default = None) parser.add_option('-w', '--website', dest = 'website', help = 'The product website', - default = 'http://www.panda3d.org') + default = 'https://www.panda3d.org') parser.add_option('', '--start', dest = 'start', help = 'Specify this option to add a start menu', action = 'store_true', default = False) @@ -65,6 +65,9 @@ parser.add_option('', '--pvk', dest = 'pvk', parser.add_option('', '--mssdk', dest = 'mssdk', help = 'The path to the MS Platform SDK directory (Windows only). mssdk/bin should contain cabarc.exe and signcode.exe.', default = None) +parser.add_option('', '--regview', dest = 'regview', + help = 'Which registry view to use, 64 or 32.', + default = None) (options, args) = parser.parse_args() @@ -221,7 +224,7 @@ def parseDependenciesUnix(tempFile): filenames.append(l.strip().split(' ', 1)[0]) return filenames -def addDependencies(path, pathname, file, pluginDependencies, dependentFiles): +def addDependencies(path, pathname, file, pluginDependencies, dependentFiles, required=True): """ Checks the named file for DLL dependencies, and adds any appropriate dependencies found into pluginDependencies and dependentFiles. """ @@ -271,7 +274,10 @@ def addDependencies(path, pathname, file, pluginDependencies, dependentFiles): break pathname = None if not pathname: - sys.exit("Couldn't find %s." % (dfile)) + if required: + sys.exit("Couldn't find %s." % (dfile)) + sys.stderr.write("Warning: couldn't find %s." % (dfile)) + continue pathname = os.path.abspath(pathname) dependentFiles[dfilelower] = pathname @@ -380,7 +386,7 @@ def makeInstaller(): npapi = 'nppanda3d.dll' panda3d = 'panda3d.exe' panda3dw = 'panda3dw.exe' - baseFiles = [ocx, npapi, panda3d, panda3dw] + baseFiles = [npapi, panda3d, panda3dw] else: baseFiles = [] @@ -545,7 +551,7 @@ def makeInstaller(): CMD += '/DINSTALL_DIR="' + options.install_dir + '" ' CMD += '/DLICENSE_FILE="' + options.license + '" ' CMD += '/DOCX="' + ocx + '" ' - CMD += '/DOCX_PATH="' + pluginFiles[ocx] + '" ' + #CMD += '/DOCX_PATH="' + pluginFiles[ocx] + '" ' CMD += '/DNPAPI="' + npapi + '" ' CMD += '/DNPAPI_PATH="' + pluginFiles[npapi] + '" ' CMD += '/DPANDA3D="' + panda3d + '" ' @@ -553,6 +559,9 @@ def makeInstaller(): CMD += '/DPANDA3DW="' + panda3dw + '" ' CMD += '/DPANDA3DW_PATH="' + pluginFiles[panda3dw] + '" ' + if options.regview: + CMD += '/DREGVIEW=%s ' % (options.regview) + dependencies = dependentFiles.items() for i in range(len(dependencies)): CMD += '/DDEP%s="%s" ' % (i, dependencies[i][0]) diff --git a/direct/src/plugin_installer/p3d_installer.nsi b/direct/src/plugin_installer/p3d_installer.nsi index 05fc5ccc20..b16c170ca5 100755 --- a/direct/src/plugin_installer/p3d_installer.nsi +++ b/direct/src/plugin_installer/p3d_installer.nsi @@ -1,6 +1,5 @@ !include "MUI.nsh" !include LogicLib.nsh -!include FileAssociation.nsh ; Several variables are assumed to be pre-defined by the caller. See ; make_installer.py in this directory. @@ -9,18 +8,18 @@ !define UNINSTALL_CONFIRM "Are you sure you want to completely remove $(^Name) and all of its components?" !define UNINSTALL_LINK_NAME "Uninstall" !define WEBSITE_LINK_NAME "Website" -!define PLID "@panda3d.org/Panda3D Runtime,version=0.0" +!define PLID "@panda3d.org/Panda3D Runtime" ; HM NIS Edit Wizard helper defines !define APP_INTERNAL_NAME "Panda3D" -!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\${OCX}" +!define PRODUCT_DIR_REGKEY_PANDA3D "Software\Microsoft\Windows\CurrentVersion\App Paths\${PANDA3D}" +!define PRODUCT_DIR_REGKEY_PANDA3DW "Software\Microsoft\Windows\CurrentVersion\App Paths\${PANDA3DW}" +!define PRODUCT_DIR_REGKEY_OCX "Software\Microsoft\Windows\CurrentVersion\App Paths\${OCX}" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PROG_GROUPNAME "${PRODUCT_NAME}" -!define FIREFOX_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" - SetCompressor lzma ; MUI Settings @@ -60,16 +59,32 @@ InstallDir "${INSTALL_DIR}" UninstallIcon "${INSTALL_ICON}" !endif WindowIcon on -InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" + ShowInstDetails show ShowUnInstDetails show +Function .onInit +!ifdef REGVIEW + SetRegView ${REGVIEW} +!endif + + ClearErrors + + ReadRegStr $0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" + + IfErrors +2 0 + StrCpy $INSTDIR $0 + +FunctionEnd + Section "MainSection" SEC01 SetShellVarContext all SetOutPath "$INSTDIR" SetOverwrite ifdiff +!ifdef OCX_PATH File "${OCX_PATH}" +!endif File "${NPAPI_PATH}" File "${PANDA3D_PATH}" File "${PANDA3DW_PATH}" @@ -100,8 +115,6 @@ Section "MainSection" SEC01 !ifdef DEP7P File "${DEP7P}" !endif - - ${registerExtension} "$INSTDIR\${PANDA3DW}" ".p3d" "Panda3D applet" !ifdef ADD_START_MENU ; Start->Programs links @@ -127,14 +140,41 @@ Section -AdditionalIcons SectionEnd Section -Post +!ifdef REGVIEW + SetRegView ${REGVIEW} +!endif + WriteUninstaller "$INSTDIR\uninst.exe" - WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\${OCX}" + + WriteRegStr HKCR ".p3d" "" "Panda3D applet" + WriteRegStr HKCR ".p3d" "Content Type" "application/x-panda3d" + WriteRegStr HKCR ".p3d" "PerceivedType" "application" + WriteRegStr HKCR "Panda3D applet" "" "Panda3D applet" + WriteRegStr HKCR "Panda3D applet\DefaultIcon" "" "$INSTDIR\${PANDA3DW}" + WriteRegStr HKCR "Panda3D applet\shell" "" "open" + WriteRegStr HKCR "Panda3D applet\shell\open\command" "" '"$INSTDIR\${PANDA3DW}" "%1"' + WriteRegExpandStr HKCR "Panda3D applet\shell\open2" "" "Open &with Command Prompt" + ;WriteRegExpandStr HKCR "Panda3D applet\shell\open2" "MUIVerb" "@%SystemRoot%\System32\wshext.dll,-4511" + WriteRegExpandStr HKCR "Panda3D applet\shell\open2\command" "" '"$INSTDIR\${PANDA3D}" "%1"' + + WriteRegStr HKLM "${PRODUCT_DIR_REGKEY_PANDA3D}" "" "$INSTDIR\${PANDA3D}" + WriteRegStr HKLM "${PRODUCT_DIR_REGKEY_PANDA3DW}" "" "$INSTDIR\${PANDA3DW}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\${OCX}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PANDA3D}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR" + WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModify" 1 + WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 1 + + SectionGetSize SEC01 $0 + WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "EstimatedSize" $0 + + # Delete keys we used in older versions + DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY_OCX}" + DeleteRegKey HKCR "Panda3D applet\shell\edit" SectionEnd @@ -149,16 +189,23 @@ Function un.onInit FunctionEnd Function .onInstSuccess - # Register ActiveX - ExecWait 'regsvr32 /s "$INSTDIR/${OCX}"' + # Register ActiveX + ExecWait 'regsvr32 /s "$INSTDIR/${OCX}"' - # Register Mozilla Plugin - WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Description" "Runs 3-D games and interactive applets" - WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Path" "$INSTDIR\${NPAPI}" - WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "ProductName" "${PRODUCT_NAME_SHORT}" - WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Vendor" "${PRODUCT_PUBLISHER}" - WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Version" "${PRODUCT_VERSION}" - WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}\MimeTypes" "application/x-panda3d" "" +!ifdef REGVIEW + SetRegView ${REGVIEW} +!endif + + # Register Mozilla Plugin + WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Description" "Runs 3-D games and interactive applets" + WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Path" "$INSTDIR\${NPAPI}" + WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "ProductName" "${PRODUCT_NAME_SHORT}" + WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Vendor" "${PRODUCT_PUBLISHER}" + WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}" "Version" "${PRODUCT_VERSION}" + WriteRegStr HKLM "SOFTWARE\MozillaPlugins\${PLID}\MimeTypes\application/x-panda3d" "Description" "Panda3D applet" + + # Remove old stuff + DeleteRegKey HKLM "SOFTWARE\MozillaPlugins\${PLID},version=0.0" FunctionEnd @@ -196,6 +243,10 @@ Section Uninstall Delete "$INSTDIR\${DEP7}" !endif +!ifdef REGVIEW + SetRegView ${REGVIEW} +!endif + # The following loop uninstalls the plugin where it may have been # copied into one of the Mozilla Extensions dirs. Older versions of # the installer would have done this, but now we just update the @@ -215,8 +266,10 @@ Mozilla-Uninstall-Loop: Mozilla-Uninstall-End: DeleteRegKey HKLM "SOFTWARE\MozillaPlugins\${PLID}" + DeleteRegKey HKLM "SOFTWARE\MozillaPlugins\${PLID},version=0.0" - ${unregisterExtension} ".p3d" "Panda3D applet" + DeleteRegKey HKCR ".p3d" + DeleteRegKey HKCR "Panda3D applet" # Remove the user's "Panda3D" directory, where all of the downloaded # contents are installed. Too bad we can't do this for every system @@ -239,7 +292,9 @@ Mozilla-Uninstall-End: RMDir "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" - DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" + DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY_PANDA3D}" + DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY_PANDA3DW}" + DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY_OCX}" SetAutoClose true SectionEnd diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 6692672541..f729f0b355 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -30,8 +30,8 @@ import time import os import sys -## jGenPyCode tries to get the directory for Direct from the sys.path. This only works if you -## have installed the sdk using a installer. This would not work if the installer was +## jGenPyCode tries to get the directory for Direct from the sys.path. This only works if you +## have installed the sdk using a installer. This would not work if the installer was ## never used and everything was grabbed into a virgin environment using cvs. sys.path.append(os.getcwd()) @@ -88,14 +88,14 @@ PkgListSet(["PYTHON", "DIRECT", # Python support "VRPN", "OPENSSL", # Transport "FFTW", # Algorithm helpers "ARTOOLKIT", "OPENCV", "DIRECTCAM", "VISION", # Augmented Reality - "NPAPI", "AWESOMIUM", # Browser embedding - "GTK2", "WX", "FLTK", # Toolkit support - "ROCKET", # GUI libraries + "GTK2", # GTK2 is used for PStats on Unix + "NPAPI", "MFC", "WX", "FLTK", # Used for web plug-in only + "ROCKET", "AWESOMIUM", # GUI libraries "CARBON", "COCOA", # Mac OS X toolkits "X11", "XF86DGA", "XRANDR", "XCURSOR", # Unix platform support "PANDATOOL", "PVIEW", "DEPLOYTOOLS", # Toolchain "SKEL", # Example SKEL project - "PANDAFX", # Some distortion special lenses + "PANDAFX", # Some distortion special lenses "PANDAPARTICLESYSTEM", # Built in particle system "CONTRIB", # Experimental "SSE2", "NEON", # Compiler features @@ -216,7 +216,7 @@ def parseopts(args): if STRDXSDKVERSION == '': print("No DirectX SDK version specified. Using 'default' DirectX SDK search") STRDXSDKVERSION = 'default' - elif (option=="--platform-sdk"): + elif (option=="--platform-sdk"): STRMSPLATFORMVERSION = value.strip().lower() if STRMSPLATFORMVERSION == '': print("No MS Platform SDK version specified. Using 'default' MS Platform SDK search") @@ -234,7 +234,7 @@ def parseopts(args): if (option=="--everything" or option.startswith("--use-") or option=="--nothing" or option.startswith("--no-")): anything = 1 - except: + except: usage(0) print("Exception while parsing commandline:", sys.exc_info()[0]) if (anything==0): usage(0) @@ -536,7 +536,6 @@ if (COMPILER == "MSVC"): if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib") if (PkgSkip("ARTOOLKIT")==0):LibName("ARTOOLKIT",GetThirdpartyDir() + "artoolkit/lib/libAR.lib") if (PkgSkip("FCOLLADA")==0): LibName("FCOLLADA", GetThirdpartyDir() + "fcollada/lib/FCollada.lib") - if (PkgSkip("SQUISH")==0): LibName("SQUISH", GetThirdpartyDir() + "squish/lib/squish.lib") if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/cv.lib") if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/highgui.lib") if (PkgSkip("OPENCV")==0): LibName("OPENCV", GetThirdpartyDir() + "opencv/lib/cvaux.lib") @@ -548,6 +547,11 @@ if (COMPILER == "MSVC"): if (PkgSkip("FFMPEG")==0): LibName("FFMPEG", GetThirdpartyDir() + "ffmpeg/lib/avutil.lib") if (PkgSkip("SWSCALE")==0): LibName("SWSCALE", GetThirdpartyDir() + "ffmpeg/lib/swscale.lib") if (PkgSkip("SWRESAMPLE")==0):LibName("SWRESAMPLE",GetThirdpartyDir() + "ffmpeg/lib/swresample.lib") + if (PkgSkip("SQUISH")==0): + if GetOptimize() <= 2: + LibName("SQUISH", GetThirdpartyDir() + "squish/lib/squishd.lib") + else: + LibName("SQUISH", GetThirdpartyDir() + "squish/lib/squish.lib") if (PkgSkip("ROCKET")==0): LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketCore.lib") LibName("ROCKET", GetThirdpartyDir() + "rocket/lib/RocketControls.lib") @@ -925,7 +929,7 @@ def CompileCxx(obj,src,opts): cmd += "/DWINVER=0x601 " cmd += "/Fo" + obj + " /nologo /c" if (GetTargetArch() != 'x64' and PkgSkip("SSE2") == 0): - cmd += " /arch:SSE2" + cmd += " /arch:SSE2" for x in ipath: cmd += " /I" + x for (opt,dir) in INCDIRECTORIES: if (opt=="ALWAYS") or (opt in opts): cmd += " /I" + BracketNameWithQuotes(dir) @@ -937,7 +941,7 @@ def CompileCxx(obj,src,opts): if (optlevel==1): cmd += " /MDd /Zi /RTCs /GS" if (optlevel==2): cmd += " /MDd /Zi" if (optlevel==3): cmd += " /MD /Zi /O2 /Ob2 /Oi /Ot /fp:fast /DFORCE_INLINING" - if (optlevel==4): + if (optlevel==4): cmd += " /MD /Zi /Ox /Ob2 /Oi /Ot /fp:fast /DFORCE_INLINING /DNDEBUG /GL" cmd += " /Oy /Zp16" # jean-claude add /Zp16 insures correct static alignment for SSEx @@ -983,11 +987,11 @@ def CompileCxx(obj,src,opts): if (optlevel==3): cmd += " /MD /Zi /O2 /Oi /Ot /arch:SSE3" cmd += " /Ob0" - cmd += " /Qipo-" # beware of IPO !!! + cmd += " /Qipo-" # beware of IPO !!! ## Lesson learned: Don't use /GL flag -> end result is MESSY ## ---------------------------------------------------------------- if (optlevel==4): - cmd += " /MD /Zi /O3 /Oi /Ot /Ob0 /Yc /DNDEBUG" # /Ob0 a ete rajoute en cours de route a 47% + cmd += " /MD /Zi /O3 /Oi /Ot /Ob0 /Yc /DNDEBUG" # /Ob0 a ete rajoute en cours de route a 47% cmd += " /Qipo" # optimization multi file # for 3 & 4 optimization levels @@ -999,7 +1003,7 @@ def CompileCxx(obj,src,opts): cmd += " /Qopt-matmul" # needs /O2 or /O3 cmd += " /Qprec-div-" cmd += " /Qsimd" - + cmd += " /QxHost" # compile for target host; Compiling for distribs should probably strictly enforce /arch:.. cmd += " /Quse-intel-optimized-headers" # use intel optimized headers cmd += " /Qparallel" # enable parallelization @@ -1007,7 +1011,7 @@ def CompileCxx(obj,src,opts): ## PCH files coexistence: the /Qpchi option causes the Intel C++ Compiler to name its ## PCH files with a .pchi filename suffix and reduce build time. - ## The /Qpchi option is on by default but interferes with Microsoft libs; so use /Qpchi- to turn it off. + ## The /Qpchi option is on by default but interferes with Microsoft libs; so use /Qpchi- to turn it off. ## I need to have a deeper look at this since the compile time is quite influenced by this setting !!! cmd += " /Qpchi-" # keep it this way! @@ -1025,7 +1029,7 @@ def CompileCxx(obj,src,opts): ## Use this option if you always define a class before you declare a pointer to a member of the class. ## The compiler will issue an error if it encounters a pointer declaration before the class is defined. ## Alternate: #pragma pointers_to_members - + cmd += " /Fd" + os.path.splitext(obj)[0] + ".pdb" building = GetValueOption(opts, "BUILDING:") if (building): cmd += " /DBUILDING_" + building @@ -1033,10 +1037,10 @@ def CompileCxx(obj,src,opts): cmd += " /bigobj" # level of warnings and optimization reports - if GetVerbose(): + if GetVerbose(): cmd += " /W3 " # or /W4 or /Wall cmd += " /Qopt-report:2 /Qopt-report-phase:hlo /Qopt-report-phase:hpo" # some optimization reports - else: + else: cmd += " /W1 " cmd += " /EHa /Zm300 /DWIN32_VC /DWIN32" if GetTargetArch() == 'x64': @@ -1044,7 +1048,7 @@ def CompileCxx(obj,src,opts): cmd += " " + BracketNameWithQuotes(src) oscmd(cmd) - + if (COMPILER=="GCC"): if (src.endswith(".c")): cmd = GetCC() +' -fPIC -c -o ' + obj else: cmd = GetCXX()+' -ftemplate-depth-50 -fPIC -c -o ' + obj @@ -1117,7 +1121,7 @@ def CompileCxx(obj,src,opts): if PkgSkip("SSE2") == 0 and not arch.startswith("arm"): cmd += " -msse2" - + if (optlevel==1): cmd += " -ggdb -D_DEBUG" if (optlevel==2): cmd += " -O1 -D_DEBUG" if (optlevel==3): cmd += " -O2" @@ -1343,7 +1347,7 @@ def CompileLink(dll, obj, opts): if ("MFC" not in opts): cmd += " /NOD:MFC90.LIB /NOD:MFC80.LIB /NOD:LIBCMT" cmd += " /NOD:LIBCI.LIB /DEBUG" - cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls" + cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls /nod:atlsd" if (GetOrigExt(dll) != ".exe"): cmd += " /DLL" optlevel = GetOptimizeOption(opts) if (optlevel==1): cmd += " /MAP /MAPINFO:EXPORTS /NOD:MSVCRT.LIB /NOD:MSVCPRT.LIB /NOD:MSVCIRT.LIB" @@ -1394,7 +1398,7 @@ def CompileLink(dll, obj, opts): oscmd(cmd) else: cmd = "xilink" - if GetVerbose(): cmd += " /verbose:lib" + if GetVerbose(): cmd += " /verbose:lib" if HasTargetArch(): cmd += " /MACHINE:" + GetTargetArch().upper() if ("MFC" not in opts): @@ -2134,7 +2138,7 @@ def WriteConfigSettings(): if (PkgSkip("TOUCHINPUT") == 0 and GetTarget() == "windows"): dtool_config["HAVE_WIN_TOUCHINPUT"] = '1' - + if (GetOptimize() <= 3): dtool_config["HAVE_ROCKET_DEBUGGER"] = '1' @@ -4475,7 +4479,7 @@ if (PkgSkip("DIRECT")==0): TargetAdd('packpanda.obj', opts=OPTS+['BUILDING:PACKPANDA'], input='ppython.cxx') TargetAdd('packpanda.exe', input='packpanda.obj') TargetAdd('packpanda.exe', opts=['PYTHON']) - + DefSymbol("BUILDING:EGGCACHER", "IMPORT_MODULE", "direct.directscripts.eggcacher") TargetAdd('eggcacher.obj', opts=OPTS+['BUILDING:EGGCACHER'], input='ppython.cxx') TargetAdd('eggcacher.exe', input='eggcacher.obj') @@ -4743,7 +4747,7 @@ if (RUNTIME and PkgSkip("NPAPI")==0): # DIRECTORY: direct/src/plugin_activex/ # -if (RUNTIME and GetTarget() == 'windows'): +if (RUNTIME and GetTarget() == 'windows' and PkgSkip("MFC")==0): OPTS=['DIR:direct/src/plugin_activex', 'RUNTIME', 'ACTIVEX', 'MFC'] DefSymbol('ACTIVEX', '_USRDLL', '') DefSymbol('ACTIVEX', '_WINDLL', '') @@ -5810,7 +5814,7 @@ if (PkgSkip("PYTHON")==0 and not RUNTIME): TargetAdd('PandaModules.py', input='fx.pyd') if (PkgSkip("DIRECT")==0): TargetAdd('PandaModules.py', input='direct.pyd') - if (PkgSkip("VISION")==0): + if (PkgSkip("VISION")==0): TargetAdd('PandaModules.py', input='vision.pyd') if (PkgSkip("SKEL")==0): TargetAdd('PandaModules.py', input='skel.pyd') @@ -6047,11 +6051,25 @@ def MakeInstallerNSIS(file, fullname, smdirectory, installdir): elif (os.path.isdir(file)): shutil.rmtree(file) + if GetTargetArch() == 'x64': + regview = '64' + else: + regview = '32' + if (RUNTIME): # Invoke the make_installer script. AddToPathEnv("PATH", GetOutputDir() + "\\bin") AddToPathEnv("PATH", GetOutputDir() + "\\plugins") - oscmd(sys.executable + " -B direct\\src\\plugin_installer\\make_installer.py --version %s" % VERSION) + + cmd = sys.executable + " -B -u direct\\src\\plugin_installer\\make_installer.py" + cmd += " --version %s --regview %s" % (VERSION, regview) + + if GetTargetArch() == 'x64': + cmd += " --install \"$PROGRAMFILES64\\Panda3D\" " + else: + cmd += " --install \"$PROGRAMFILES32\\Panda3D\" " + + oscmd(cmd) shutil.move("direct\\src\\plugin_installer\\p3d-setup.exe", file) return @@ -6064,11 +6082,6 @@ def MakeInstallerNSIS(file, fullname, smdirectory, installdir): psource = os.path.abspath(".") panda = os.path.abspath(GetOutputDir()) - if GetTargetArch() == 'x64': - regview = '64' - else: - regview = '32' - nsis_defs = { 'COMPRESSOR' : COMPRESSOR, 'NAME' : fullname, From 9faeb08e5734fb2ce5add7c0f2635c8f6d58f363 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 8 Oct 2014 20:46:01 +0000 Subject: [PATCH 23/27] Oops, I had accidentally commented out OCX installation --- direct/src/plugin_installer/make_installer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/direct/src/plugin_installer/make_installer.py b/direct/src/plugin_installer/make_installer.py index c9b3f5124a..4a4a73ccd1 100755 --- a/direct/src/plugin_installer/make_installer.py +++ b/direct/src/plugin_installer/make_installer.py @@ -386,7 +386,7 @@ def makeInstaller(): npapi = 'nppanda3d.dll' panda3d = 'panda3d.exe' panda3dw = 'panda3dw.exe' - baseFiles = [npapi, panda3d, panda3dw] + baseFiles = [ocx, npapi, panda3d, panda3dw] else: baseFiles = [] @@ -551,7 +551,7 @@ def makeInstaller(): CMD += '/DINSTALL_DIR="' + options.install_dir + '" ' CMD += '/DLICENSE_FILE="' + options.license + '" ' CMD += '/DOCX="' + ocx + '" ' - #CMD += '/DOCX_PATH="' + pluginFiles[ocx] + '" ' + CMD += '/DOCX_PATH="' + pluginFiles[ocx] + '" ' CMD += '/DNPAPI="' + npapi + '" ' CMD += '/DNPAPI_PATH="' + pluginFiles[npapi] + '" ' CMD += '/DPANDA3D="' + panda3d + '" ' From 296476f7ddfd7c9efb19977a42786e019cab444c Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 9 Oct 2014 14:24:03 +0000 Subject: [PATCH 24/27] Fix compile error when compiling with optimize level 4 --- panda/src/display/pStatGPUTimer.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/panda/src/display/pStatGPUTimer.h b/panda/src/display/pStatGPUTimer.h index 4c67e3ea4c..6f7ede9d49 100644 --- a/panda/src/display/pStatGPUTimer.h +++ b/panda/src/display/pStatGPUTimer.h @@ -53,8 +53,10 @@ public: private: #else // DO_PSTATS - INLINE PStatGPUTimer(GraphicsStateGuardian *, PStatCollector &) { } - INLINE PStatGPUTimer(GraphicsStateGuardian *, PStatCollector &, Thread *) { } + INLINE PStatGPUTimer(GraphicsStateGuardian *, PStatCollector &col) + : PStatTimer(col) { } + INLINE PStatGPUTimer(GraphicsStateGuardian *, PStatCollector &col, Thread *) + : PStatTimer(col) { } INLINE ~PStatGPUTimer() { } #endif // DO_PSTATS From 902bedc3145052a79dfe0023917bb22bbfbd4ea6 Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 10 Oct 2014 13:45:05 +0000 Subject: [PATCH 25/27] Fix Python 3 crash on Windows, and fix some Python 3-related compile errors --- dtool/src/dtoolutil/executionEnvironment.cxx | 51 +++++++++++++++---- .../interfaceMakerPythonNative.cxx | 15 ++++++ dtool/src/interrogate/typeManager.cxx | 39 ++++++++++++++ dtool/src/interrogate/typeManager.h | 2 + makepanda/makepandacore.py | 14 ++--- panda/src/gobj/internalName_ext.cxx | 11 ++-- 6 files changed, 113 insertions(+), 19 deletions(-) diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index 41e7aae64d..fac9475d46 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -31,6 +31,9 @@ // And this is for GetModuleFileName(). #include +// And this is for CommandLineToArgvW. +#include + // SHGetSpecialFolderPath() #include #endif @@ -74,12 +77,11 @@ extern char **environ; #define PREREAD_ENVIRONMENT #endif - // We define the symbol HAVE_GLOBAL_ARGV if we have global variables // named GLOBAL_ARGC/GLOBAL_ARGV that we can read at static init time // to determine our command-line arguments. -#if defined(HAVE_GLOBAL_ARGV) && defined(PROTOTYPE_GLOBAL_ARGV) +#if !defined(WIN32_VC) && defined(HAVE_GLOBAL_ARGV) && defined(PROTOTYPE_GLOBAL_ARGV) extern char **GLOBAL_ARGV; extern int GLOBAL_ARGC; #endif @@ -298,7 +300,7 @@ ns_get_environment_variable(const string &var) const { #endif } } - + PyGILState_Release(state); if (main_dir.empty()) { @@ -762,7 +764,32 @@ read_args() { // Next we need to fill in _args, which is a vector containing // the command-line arguments that the executable was invoked with. -#if defined(IS_FREEBSD) +#if defined(WIN32_VC) + + // We cannot rely on __argv when Python is linked in Unicode mode. + // Instead, let's use GetCommandLine. + + LPWSTR cmdline = GetCommandLineW(); + int argc = 0; + LPWSTR *argv = CommandLineToArgvW(cmdline, &argc); + + TextEncoder encoder; + encoder.set_encoding(Filename::get_filesystem_encoding()); + + for (int i = 0; i < argc; ++i) { + wstring wtext(argv[i]); + encoder.set_wtext(wtext); + + if (i == 0) { + if (_binary_name.empty()) { + _binary_name = encoder.get_text(); + } + } else { + _args.push_back(encoder.get_text()); + } + } + +#elif defined(IS_FREEBSD) // In FreeBSD, we can use sysctl to determine the command-line arguments. size_t bufsize = 4096; @@ -786,13 +813,17 @@ read_args() { #elif defined(HAVE_GLOBAL_ARGV) int argc = GLOBAL_ARGC; - if (_binary_name.empty() && argc > 0) { - _binary_name = GLOBAL_ARGV[0]; - // This really needs to be resolved against PATH. - } + // On Windows, __argv can be NULL when the main entry point is + // compiled in Unicode mode (as is the case with Python 3) + if (GLOBAL_ARGV != NULL) { + if (_binary_name.empty() && argc > 0) { + _binary_name = GLOBAL_ARGV[0]; + // This really needs to be resolved against PATH. + } - for (int i = 1; i < argc; i++) { - _args.push_back(GLOBAL_ARGV[i]); + for (int i = 1; i < argc; i++) { + _args.push_back(GLOBAL_ARGV[i]); + } } #elif defined(HAVE_PROC_SELF_CMDLINE) || defined(HAVE_PROC_CURPROC_CMDLINE) diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 0a1f601c12..6549bf70fc 100755 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -3292,6 +3292,21 @@ write_function_instance(ostream &out, InterfaceMaker::Object *obj, expected_params += "string"; ++num_params; + } else if (TypeManager::is_pointer_to_PyUnicodeObject(type)) { + if (args_type == AT_single_arg) { + // This is a single-arg function, so there's no need + // to convert anything. + param_name = "arg"; + extra_param_check += " && PyUnicode_Check(arg)"; + } else { + indent(out, indent_level) << "PyUnicodeObject *" << param_name << ";\n"; + format_specifiers += "U"; + parameter_list += ", &" + param_name; + } + pexpr_string = param_name; + expected_params += "unicode"; + ++num_params; + } else if (TypeManager::is_pointer_to_PyObject(type)) { if (args_type == AT_single_arg) { // This is a single-arg function, so there's no need diff --git a/dtool/src/interrogate/typeManager.cxx b/dtool/src/interrogate/typeManager.cxx index 9ae0903469..4539ae9c0a 100644 --- a/dtool/src/interrogate/typeManager.cxx +++ b/dtool/src/interrogate/typeManager.cxx @@ -1251,6 +1251,45 @@ is_PyStringObject(CPPType *type) { } } +//////////////////////////////////////////////////////////////////// +// Function: TypeManager::is_pointer_to_PyUnicodeObject +// Access: Public, Static +// Description: Returns true if the indicated type is PyStringObject *. +//////////////////////////////////////////////////////////////////// +bool TypeManager:: +is_pointer_to_PyUnicodeObject(CPPType *type) { + switch (type->get_subtype()) { + case CPPDeclaration::ST_const: + return is_pointer_to_PyUnicodeObject(type->as_const_type()->_wrapped_around); + + case CPPDeclaration::ST_pointer: + return is_PyUnicodeObject(type->as_pointer_type()->_pointing_at); + + default: + return false; + } +} + +//////////////////////////////////////////////////////////////////// +// Function: TypeManager::is_PyUnicodeObject +// Access: Public, Static +// Description: Returns true if the indicated type is PyUnicodeObject. +//////////////////////////////////////////////////////////////////// +bool TypeManager:: +is_PyUnicodeObject(CPPType *type) { + switch (type->get_subtype()) { + case CPPDeclaration::ST_const: + return is_PyUnicodeObject(type->as_const_type()->_wrapped_around); + + case CPPDeclaration::ST_extension: + case CPPDeclaration::ST_struct: + return (type->get_local_name(&parser) == "PyUnicodeObject"); + + default: + return false; + } +} + //////////////////////////////////////////////////////////////////// // Function: TypeManager::is_pointer_to_Py_buffer // Access: Public, Static diff --git a/dtool/src/interrogate/typeManager.h b/dtool/src/interrogate/typeManager.h index afe02fa812..974a5b3e19 100644 --- a/dtool/src/interrogate/typeManager.h +++ b/dtool/src/interrogate/typeManager.h @@ -96,6 +96,8 @@ public: static bool is_PyObject(CPPType *type); static bool is_pointer_to_PyStringObject(CPPType *type); static bool is_PyStringObject(CPPType *type); + static bool is_pointer_to_PyUnicodeObject(CPPType *type); + static bool is_PyUnicodeObject(CPPType *type); static bool is_pointer_to_Py_buffer(CPPType *type); static bool is_Py_buffer(CPPType *type); static bool involves_unpublished(CPPType *type); diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index d913017317..102d2550ea 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -221,7 +221,7 @@ def ProgressOutput(progress, msg, target = None): prefix = "%s[%s %d%%%s] " % (GetColor("yellow"), GetColor("cyan"), progress, GetColor("yellow")) else: global THREADS - + ident = thread.get_ident() if (ident not in THREADS): THREADS[ident] = len(THREADS) + 1 @@ -469,7 +469,7 @@ def LocateBinary(binary): p = os.environ["PATH"] pathList = p.split(os.pathsep) - + if GetHost() == 'windows': if not binary.endswith('.exe'): # Append .exe if necessary @@ -871,7 +871,7 @@ def CxxCalcDependencies(srcfile, ipath, ignore): ######################################################################## if sys.platform == "win32": - # Note: not supported on cygwin. + # Note: not supported on cygwin. if sys.version_info >= (3, 0): import winreg else: @@ -1132,7 +1132,7 @@ def GetThirdpartyBase(): THIRDPARTYBASE = "thirdparty" if "MAKEPANDA_THIRDPARTY" in os.environ: THIRDPARTYBASE = os.environ["MAKEPANDA_THIRDPARTY"] - + return THIRDPARTYBASE def GetThirdpartyDir(): @@ -1853,7 +1853,7 @@ def SdkLocatePython(force_use_sys_executable = False): force_use_sys_executable = False if (GetTarget() == 'windows' and not force_use_sys_executable): - SDK["PYTHON"] = GetThirdpartyBase()+"/win-python" + SDK["PYTHON"] = GetThirdpartyBase() + "/win-python" if (GetOptimize() <= 2): SDK["PYTHON"] += "-dbg" if (GetTargetArch() == 'x64' and os.path.isdir(SDK["PYTHON"] + "-x64")): @@ -1882,6 +1882,8 @@ def SdkLocatePython(force_use_sys_executable = False): py_dll = os.path.basename(py_dlls[0]) SDK["PYTHONVERSION"] = "python" + py_dll[6] + "." + py_dll[7] + os.environ["PYTHONHOME"] = SDK["PYTHON"] + elif CrossCompiling(): tp_python = os.path.join(GetThirdpartyDir(), "python") SDK["PYTHON"] = tp_python + "/include" @@ -2804,4 +2806,4 @@ def TargetAdd(target, dummy=0, opts=0, input=0, dep=0, ipath=0, winrc=0): t.deps[FindLocation("dtool_have_python.dat", [])] = 1 if target.endswith(".pz") and not CrossCompiling(): - t.deps[FindLocation("pzip.exe", [])] = 1 + t.deps[FindLocation("pzip.exe", [])] = 1 diff --git a/panda/src/gobj/internalName_ext.cxx b/panda/src/gobj/internalName_ext.cxx index 99bee102a9..5d15fd5e6d 100644 --- a/panda/src/gobj/internalName_ext.cxx +++ b/panda/src/gobj/internalName_ext.cxx @@ -30,8 +30,13 @@ make(PyUnicodeObject *str) { if (!PyUnicode_CHECK_INTERNED(str)) { // Not an interned string; don't bother. Py_ssize_t len = 0; - char *c_str = PyUnicode_AsUTF8AndSize(str, &len); - return InternalName::make(name); + char *c_str = PyUnicode_AsUTF8AndSize((PyObject *)str, &len); + if (c_str == NULL) { + return NULL; + } + + string name(c_str, len); + return InternalName::make(c_str, len); } InternalName::PyInternTable::const_iterator it; @@ -42,7 +47,7 @@ make(PyUnicodeObject *str) { } else { Py_ssize_t len = 0; - char *c_str = PyUnicode_AsUTF8AndSize(str, &len); + char *c_str = PyUnicode_AsUTF8AndSize((PyObject *)str, &len); string name(c_str, len); #else From 3ed7ae0bd95196f977f3295e7fc3659a7157481d Mon Sep 17 00:00:00 2001 From: rdb Date: Fri, 10 Oct 2014 13:54:53 +0000 Subject: [PATCH 26/27] Oops; fix memory leak --- dtool/src/dtoolutil/executionEnvironment.cxx | 29 ++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index fac9475d46..2d970c789e 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -771,22 +771,29 @@ read_args() { LPWSTR cmdline = GetCommandLineW(); int argc = 0; - LPWSTR *argv = CommandLineToArgvW(cmdline, &argc); + LPWSTR *wargv = CommandLineToArgvW(cmdline, &argc); - TextEncoder encoder; - encoder.set_encoding(Filename::get_filesystem_encoding()); + if (wargv == NULL) { + cerr << "CommandLineToArgvW failed; command-line arguments unavailable to config.\n"; - for (int i = 0; i < argc; ++i) { - wstring wtext(argv[i]); - encoder.set_wtext(wtext); + } else { + TextEncoder encoder; + encoder.set_encoding(Filename::get_filesystem_encoding()); - if (i == 0) { - if (_binary_name.empty()) { - _binary_name = encoder.get_text(); + for (int i = 0; i < argc; ++i) { + wstring wtext(wargv[i]); + encoder.set_wtext(wtext); + + if (i == 0) { + if (_binary_name.empty()) { + _binary_name = encoder.get_text(); + } + } else { + _args.push_back(encoder.get_text()); } - } else { - _args.push_back(encoder.get_text()); } + + LocalFree(wargv); } #elif defined(IS_FREEBSD) From ab8ebe6e302fd336169bdf114e0326d2142c91f3 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 11 Oct 2014 01:28:32 +0000 Subject: [PATCH 27/27] Fix issues with point rendering, both software and hardware. --- .../glstuff/glGraphicsStateGuardian_src.cxx | 5 +- panda/src/gobj/geomPrimitive.I | 27 +++++++ panda/src/gobj/geomPrimitive.cxx | 50 +++++++++--- panda/src/gobj/geomPrimitive.h | 11 ++- panda/src/pgraph/cullableObject.cxx | 76 ++++++++++--------- panda/src/pgraph/transformState.cxx | 2 +- 6 files changed, 116 insertions(+), 55 deletions(-) diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 7a95f02a66..fda881333c 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -538,7 +538,7 @@ reset() { } } if (_supports_point_parameters) { - _supported_geom_rendering |= Geom::GR_point_perspective; + _supported_geom_rendering |= Geom::GR_point_perspective | Geom::GR_point_scale; } else { _glPointParameterfv = null_glPointParameterfv; } @@ -2764,7 +2764,7 @@ end_frame(Thread *current_thread) { // And deleted queries, too, unless we're using query timers // in which case we'll need to reuse lots of them. - if (!_timer_queries_active && !_deleted_queries.empty()) { + if (!get_timer_queries_active() && !_deleted_queries.empty()) { if (GLCAT.is_spam()) { DeletedNames::iterator dqi; for (dqi = _deleted_queries.begin(); @@ -11335,6 +11335,7 @@ do_point_size() { // matrix. LVector3 height(0.0f, _point_size, 1.0f); height = height * _projection_mat->get_mat(); + height = height * _internal_transform->get_scale()[1]; PN_stdfloat s = height[1] * _viewport_height / _point_size; if (_current_lens->is_orthographic()) { diff --git a/panda/src/gobj/geomPrimitive.I b/panda/src/gobj/geomPrimitive.I index bda47efc56..8b40eb0813 100644 --- a/panda/src/gobj/geomPrimitive.I +++ b/panda/src/gobj/geomPrimitive.I @@ -429,6 +429,17 @@ add_vertices(int v1, int v2, int v3, int v4) { add_vertex(v4); } +//////////////////////////////////////////////////////////////////// +// Function: GeomPrimitive::get_index_format +// Access: Public +// Description: Returns a registered format appropriate for using to +// store the index table. +//////////////////////////////////////////////////////////////////// +INLINE const GeomVertexArrayFormat *GeomPrimitive:: +get_index_format() const { + return get_index_format(get_index_type()); +} + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::make_index_data // Access: Public @@ -439,6 +450,22 @@ make_index_data() const { return new GeomVertexArrayData(get_index_format(), get_usage_hint()); } +//////////////////////////////////////////////////////////////////// +// Function: GeomPrimitive::make_index_format +// Access: Private, Static +// Description: Returns a registered format appropriate for using to +// store the index table. +//////////////////////////////////////////////////////////////////// +INLINE CPT(GeomVertexArrayFormat) GeomPrimitive:: +make_index_format(NumericType index_type) { + PT(GeomVertexArrayFormat) format = new GeomVertexArrayFormat; + // It's important that the index format *not* respect the global + // setting of vertex-column-alignment. It needs to be tightly + // packed, so we specify an explict column_alignment of 1. + format->add_column(InternalName::get_index(), 1, index_type, C_index, 0, 1); + return GeomVertexArrayFormat::register_format(format); +} + //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::CData::Constructor // Access: Public diff --git a/panda/src/gobj/geomPrimitive.cxx b/panda/src/gobj/geomPrimitive.cxx index 8b7cb19e15..bd7643b971 100644 --- a/panda/src/gobj/geomPrimitive.cxx +++ b/panda/src/gobj/geomPrimitive.cxx @@ -1233,6 +1233,11 @@ set_vertices(const GeomVertexArrayData *vertices, int num_vertices) { cdata->_vertices = (GeomVertexArrayData *)vertices; cdata->_num_vertices = num_vertices; + // Validate the format and make sure to copy its numeric type. + const GeomVertexArrayFormat *format = vertices->get_array_format(); + nassertv(format->get_num_columns() == 1); + cdata->_index_type = format->get_column(0)->get_numeric_type(); + cdata->_modified = Geom::get_next_modified(); cdata->_got_minmax = false; } @@ -1564,18 +1569,41 @@ release_all() { //////////////////////////////////////////////////////////////////// // Function: GeomPrimitive::get_index_format -// Access: Public -// Description: Returns a registered format appropriate for using to -// store the index table. +// Access: Public, Static +// Description: Returns a registered GeomVertexArrayFormat of the +// indicated unsigned integer numeric type for storing +// index values. //////////////////////////////////////////////////////////////////// -CPT(GeomVertexArrayFormat) GeomPrimitive:: -get_index_format() const { - PT(GeomVertexArrayFormat) format = new GeomVertexArrayFormat; - // It's important that the index format *not* respect the global - // setting of vertex-column-alignment. It needs to be tightly - // packed, so we specify an explict column_alignment of 1. - format->add_column(InternalName::get_index(), 1, get_index_type(), C_index, 0, 1); - return GeomVertexArrayFormat::register_format(format); +const GeomVertexArrayFormat *GeomPrimitive:: +get_index_format(NumericType index_type) { + switch (index_type) { + case NT_uint8: + { + static CPT(GeomVertexArrayFormat) cformat = NULL; + if (cformat == NULL) { + cformat = make_index_format(NT_uint8); + } + return cformat; + } + case NT_uint16: + { + static CPT(GeomVertexArrayFormat) cformat = NULL; + if (cformat == NULL) { + cformat = make_index_format(NT_uint16); + } + return cformat; + } + case NT_uint32: + { + static CPT(GeomVertexArrayFormat) cformat = NULL; + if (cformat == NULL) { + cformat = make_index_format(NT_uint32); + } + return cformat; + } + } + + return NULL; } //////////////////////////////////////////////////////////////////// diff --git a/panda/src/gobj/geomPrimitive.h b/panda/src/gobj/geomPrimitive.h index ef26ad4977..298ea6dd90 100644 --- a/panda/src/gobj/geomPrimitive.h +++ b/panda/src/gobj/geomPrimitive.h @@ -185,15 +185,18 @@ public: void prepare(PreparedGraphicsObjects *prepared_objects); bool is_prepared(PreparedGraphicsObjects *prepared_objects) const; - IndexBufferContext *prepare_now(PreparedGraphicsObjects *prepared_objects, + IndexBufferContext *prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg); bool release(PreparedGraphicsObjects *prepared_objects); int release_all(); - CPT(GeomVertexArrayFormat) get_index_format() const; + static const GeomVertexArrayFormat *get_index_format(NumericType index_type); + INLINE const GeomVertexArrayFormat *get_index_format() const; INLINE PT(GeomVertexArrayData) make_index_data() const; private: + static CPT(GeomVertexArrayFormat) make_index_format(NumericType index_type); + void clear_prepared(PreparedGraphicsObjects *prepared_objects); static int get_highest_index_value(NumericType index_type); static int get_strip_cut_index(NumericType index_type); @@ -204,7 +207,7 @@ public: bool force) const=0; void calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, - bool &found_any, + bool &found_any, const GeomVertexData *vertex_data, bool got_mat, const LMatrix4 &mat, const InternalName *column_name, @@ -216,7 +219,7 @@ protected: virtual CPT(GeomPrimitive) doubleside_impl() const; virtual CPT(GeomPrimitive) reverse_impl() const; virtual bool requires_unused_vertices() const; - virtual void append_unused_vertices(GeomVertexArrayData *vertices, + virtual void append_unused_vertices(GeomVertexArrayData *vertices, int vertex); private: diff --git a/panda/src/pgraph/cullableObject.cxx b/panda/src/pgraph/cullableObject.cxx index 4ea54f5923..5f6d6d61b3 100644 --- a/panda/src/pgraph/cullableObject.cxx +++ b/panda/src/pgraph/cullableObject.cxx @@ -76,11 +76,11 @@ munge_geom(GraphicsStateGuardianBase *gsg, nassertr(geom_reader.check_valid(&data_reader), false); } #endif // _DEBUG - + geom_rendering = geom_reader.get_geom_rendering(); geom_rendering = _state->get_geom_rendering(geom_rendering); geom_rendering = _modelview_transform->get_geom_rendering(geom_rendering); - + if (geom_rendering & Geom::GR_point_bits) { if (geom_reader.get_primitive_type() != Geom::PT_points) { if (singular_points) { @@ -90,7 +90,7 @@ munge_geom(GraphicsStateGuardianBase *gsg, } } } - + GraphicsStateGuardianBase *gsg = traverser->get_gsg(); int gsg_bits = gsg->get_supported_geom_rendering(); if (!hardware_point_sprites) { @@ -113,7 +113,7 @@ munge_geom(GraphicsStateGuardianBase *gsg, // _munged_data, and might also replace _state. if (pgraph_cat.is_spam()) { pgraph_cat.spam() - << "munge_points_to_quads() for geometry with bits: " + << "munge_points_to_quads() for geometry with bits: " << hex << geom_rendering << ", unsupported: " << (unsupported_bits & Geom::GR_point_bits) << dec << "\n"; } @@ -128,7 +128,7 @@ munge_geom(GraphicsStateGuardianBase *gsg, // If we have to compute the light vector, we have to animate // the vertices in the CPU--and we have to do it before we call // munge_geom(), which might lose the tangent and binormal. - CPT(GeomVertexData) animated_vertices = + CPT(GeomVertexData) animated_vertices = _munged_data->animate_vertices(force, current_thread); if (animated_vertices != _munged_data) { cpu_animated = true; @@ -154,7 +154,7 @@ munge_geom(GraphicsStateGuardianBase *gsg, // has been munged--that is, we couldn't arrange to handle the // animation in hardware--then we have to calculate that // animation now. - CPT(GeomVertexData) animated_vertices = + CPT(GeomVertexData) animated_vertices = _munged_data->animate_vertices(force, current_thread); if (animated_vertices != _munged_data) { cpu_animated = true; @@ -238,7 +238,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { // Better get the animated vertices, in case we're showing sprites // on an animated model for some reason. - CPT(GeomVertexData) source_data = + CPT(GeomVertexData) source_data = _munged_data->animate_vertices(force, current_thread); if (!force && !source_data->request_resident()) { @@ -306,22 +306,22 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { FormatMap::iterator fmi = _format_map.find(sformat); if (fmi != _format_map.end()) { new_format = (*fmi).second; - + } else { // We have to construct the format now. PT(GeomVertexArrayFormat) new_array_format; if (sformat._retransform_sprites) { // With retransform_sprites in effect, we will be sending ordinary // 3-D points to the graphics API. - new_array_format = - new GeomVertexArrayFormat(InternalName::get_vertex(), 3, + new_array_format = + new GeomVertexArrayFormat(InternalName::get_vertex(), 3, Geom::NT_stdfloat, Geom::C_point); } else { // Without retransform_sprites, we will be sending 4-component // clip-space points. - new_array_format = - new GeomVertexArrayFormat(InternalName::get_vertex(), 4, + new_array_format = + new GeomVertexArrayFormat(InternalName::get_vertex(), 4, Geom::NT_stdfloat, Geom::C_clip_point); } @@ -342,14 +342,14 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { (InternalName::get_texcoord(), 2, Geom::NT_stdfloat, Geom::C_texcoord); - + } else if (has_texcoord) { const GeomVertexColumn *c = texcoord.get_column(); new_array_format->add_column (InternalName::get_texcoord(), c->get_num_components(), c->get_numeric_type(), c->get_contents()); } - + new_format = GeomVertexFormat::register_format(new_array_format); _format_map[sformat] = new_format; } @@ -406,7 +406,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { LPoint3 eye = modelview.xform_point(vertex.get_data3()); points[vi]._eye = eye; points[vi]._dist = gsg->compute_distance_to(points[vi]._eye); - + // The point in clip coordinates. LPoint4 p4 = LPoint4(eye[0], eye[1], eye[2], 1.0f) * projection; @@ -431,7 +431,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { scale_y /= gsg->compute_distance_to(eye); } } - + // Also factor in the homogeneous scale for being in clip // coordinates still. scale_y *= p4[3]; @@ -445,7 +445,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { LPoint2 c0(scale_x, scale_y); LPoint2 c1(-scale_x, scale_y); - if (has_rotate) { + if (has_rotate) { // If we have a rotate factor, apply it to those two corners. PN_stdfloat r = rotate.get_data1f(); LMatrix3 mat = LMatrix3::rotate_mat(r); @@ -459,7 +459,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { PN_stdfloat ry = 1.0f / viewport_height; c0.set(c0[0] * rx, c0[1] * ry); c1.set(c1[0] * rx, c1[1] * ry); - + if (retransform_sprites) { // With retransform_sprites in effect, we must reconvert the // resulting quad back into the original 3-D space. @@ -467,7 +467,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { new_vertex.set_data4(inv_render_transform.xform(LPoint4(p4[0] + c1[0], p4[1] + c1[1], p4[2], p4[3]))); new_vertex.set_data4(inv_render_transform.xform(LPoint4(p4[0] - c1[0], p4[1] - c1[1], p4[2], p4[3]))); new_vertex.set_data4(inv_render_transform.xform(LPoint4(p4[0] - c0[0], p4[1] - c0[1], p4[2], p4[3]))); - + if (has_normal) { const LNormal &c = normal.get_data3(); new_normal.set_data3(c); @@ -475,7 +475,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { new_normal.set_data3(c); new_normal.set_data3(c); } - + } else { // Without retransform_sprites, we can simply load the // clip-space coordinates. @@ -483,7 +483,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { new_vertex.set_data4(p4[0] + c1[0], p4[1] + c1[1], p4[2], p4[3]); new_vertex.set_data4(p4[0] - c1[0], p4[1] - c1[1], p4[2], p4[3]); new_vertex.set_data4(p4[0] - c0[0], p4[1] - c0[1], p4[2], p4[3]); - + if (has_normal) { LNormal c = render_transform.xform_vec(normal.get_data3()); new_normal.set_data3(c); @@ -519,18 +519,20 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { nassertr(new_data->get_num_rows() == new_verts, false); } - PT(Geom) new_geom = new Geom(new_data); - - // Create an appropriate GeomVertexArrayFormat for the primitive - // index. - static CPT(GeomVertexArrayFormat) new_prim_format; - if (new_prim_format == (GeomVertexArrayFormat *)NULL) { - new_prim_format = - GeomVertexArrayFormat::register_format - (new GeomVertexArrayFormat(InternalName::get_index(), 1, - GeomEnums::NT_uint16, GeomEnums::C_index)); + // Determine the format we should use to store the indices. + const GeomVertexArrayFormat *new_prim_format = NULL; + if (new_verts < 0xff) { + new_prim_format = GeomPrimitive::get_index_format(GeomEnums::NT_uint8); + + } else if (new_verts < 0xffff) { + new_prim_format = GeomPrimitive::get_index_format(GeomEnums::NT_uint16); + + } else { + new_prim_format = GeomPrimitive::get_index_format(GeomEnums::NT_uint32); } + PT(Geom) new_geom = new Geom(new_data); + // Replace each primitive in the Geom (it's presumably a GeomPoints // primitive, although it might be some other kind of primitive if // we got here because RenderModeAttrib::M_point is enabled) with a @@ -573,11 +575,11 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { vertices[i] = v; } } - + // Now sort the points in order from back-to-front so they will // render properly with transparency, at least with each other. sort(vertices, vertices_end, SortPoints(points)); - + // Go through the points, now in sorted order, and generate a pair // of triangles for each one. We generate indexed triangles // instead of two-triangle strips, since this seems to be @@ -587,7 +589,7 @@ munge_points_to_quads(const CullTraverser *traverser, bool force) { PT(GeomPrimitive) new_primitive = new GeomTriangles(Geom::UH_stream); int new_prim_verts = 6 * num_vertices; // two triangles per point. - PT(GeomVertexArrayData) new_index + PT(GeomVertexArrayData) new_index = new GeomVertexArrayData(new_prim_format, GeomEnums::UH_stream); new_index->unclean_set_num_rows(new_prim_verts); @@ -667,14 +669,14 @@ munge_texcoord_light_vector(const CullTraverser *traverser, bool force) { string source_name = tex_gen->get_source_name(stage); Light *light_obj = light.node()->as_light(); nassertr(light_obj != (Light *)NULL, false); - + // Determine the names of the tangent and binormal columns // associated with the stage's texcoord name. PT(InternalName) tangent_name = InternalName::get_tangent_name(source_name); PT(InternalName) binormal_name = InternalName::get_binormal_name(source_name); - + PT(InternalName) texcoord_name = stage->get_texcoord_name(); - + if (_munged_data->has_column(tangent_name) && _munged_data->has_column(binormal_name)) { diff --git a/panda/src/pgraph/transformState.cxx b/panda/src/pgraph/transformState.cxx index 84fa387080..a9ec305914 100644 --- a/panda/src/pgraph/transformState.cxx +++ b/panda/src/pgraph/transformState.cxx @@ -2322,7 +2322,7 @@ do_calc_components() { _hpr.set(0.0f, 0.0f, 0.0f); _quat = LQuaternion::ident_quat(); _pos.set(0.0f, 0.0f, 0.0f); - _flags |= F_has_components | F_components_known | F_hpr_known | F_quat_known | F_uniform_scale; + _flags |= F_has_components | F_components_known | F_hpr_known | F_quat_known | F_uniform_scale | F_identity_scale; } else { // If we don't have components and we're not identity, the only