From: Good Guy Date: Tue, 4 Oct 2016 00:25:10 +0000 (-0600) Subject: version update, fixes for 32bit cmplr warns X-Git-Url: http://git.cinelerra-gg.org/git/?a=commitdiff_plain;ds=sidebyside;h=bf87166cc5846f96c5be2621e329c1cbc21c1508;p=goodguy%2Fhistory.git version update, fixes for 32bit cmplr warns --- diff --git a/cinelerra-5.1/PKGBUILD b/cinelerra-5.1/PKGBUILD index eed0cb48..f2ac3389 100644 --- a/cinelerra-5.1/PKGBUILD +++ b/cinelerra-5.1/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: goodguy pkgname=cin pkgver=5.1 -pkgrel=20160831 +pkgrel=20161002 pkgdesc="Cinelerra git://git.cinelerra-cv.org/goodguy/cinelerra.git ($pkgrel)" arch=('x86_64') url="http://www.cinelerra-cv.org" diff --git a/cinelerra-5.1/cinelerra.spec b/cinelerra-5.1/cinelerra.spec index 5b302e08..bd2c2be0 100644 --- a/cinelerra-5.1/cinelerra.spec +++ b/cinelerra-5.1/cinelerra.spec @@ -1,4 +1,4 @@ -%define ver 20160831 +%define ver 20161002 Summary: Multimedia Editing and construction Name: cinelerra Version: 5.1 diff --git a/cinelerra-5.1/cinelerra/amodule.C b/cinelerra-5.1/cinelerra/amodule.C index bd45a39c..91116411 100644 --- a/cinelerra-5.1/cinelerra/amodule.C +++ b/cinelerra-5.1/cinelerra/amodule.C @@ -268,7 +268,7 @@ nested_edl); if(debug) printf("AModule::import_samples %d\n", __LINE__); this->channel = edit->channel; -if(debug) printf("AModule::import_samples %d speed_fragment_len=%ld\n", +if(debug) printf("AModule::import_samples %d speed_fragment_len=%jd\n", __LINE__, speed_fragment_len); @@ -532,7 +532,7 @@ asset->sample_rate); { if(debug) -printf("AModule::import_samples %d channel=%d start_source=%ld len=%d\n", __LINE__, edit->channel, start_source, (int)speed_fragment_len); +printf("AModule::import_samples %d channel=%d start_source=%jd len=%d\n", __LINE__, edit->channel, start_source, (int)speed_fragment_len); file->set_audio_position(start_source); file->set_channel(edit->channel); result = file->read_samples(speed_buffer, speed_fragment_len); diff --git a/cinelerra-5.1/cinelerra/attachmentpoint.C b/cinelerra-5.1/cinelerra/attachmentpoint.C index 1d294613..362a5e1f 100644 --- a/cinelerra-5.1/cinelerra/attachmentpoint.C +++ b/cinelerra-5.1/cinelerra/attachmentpoint.C @@ -62,7 +62,8 @@ int AttachmentPoint::reset_parameters() void AttachmentPoint::reset_status() { - if(!(void *)this) printf("AttachmentPoint::reset_status NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::reset_status NULL\n"); start_position = 0; len = 0; sample_rate = 0; @@ -79,7 +80,8 @@ int AttachmentPoint::identical(AttachmentPoint *old) int AttachmentPoint::render_init() { - if(!(void *)this) printf("AttachmentPoint::render_init NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::render_init NULL\n"); if(plugin_server && plugin->on) { // Start new plugin servers if the number of nodes changed. @@ -155,7 +157,8 @@ void AttachmentPoint::render_stop() int AttachmentPoint::attach_virtual_plugin(VirtualNode *virtual_plugin) { - if(!(void *)this) printf("AttachmentPoint::attach_virtual_plugin NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::attach_virtual_plugin NULL\n"); int buffer_number = 0; if(plugin_server && plugin->on) @@ -183,7 +186,8 @@ int AttachmentPoint::attach_virtual_plugin(VirtualNode *virtual_plugin) int AttachmentPoint::multichannel_shared(int search_new) { - if(!(void *)this) printf("AttachmentPoint::multichannel_shared NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::multichannel_shared NULL\n"); if(search_new) { if(new_virtual_plugins.total && @@ -201,7 +205,8 @@ int AttachmentPoint::multichannel_shared(int search_new) int AttachmentPoint::singlechannel() { - if(!(void *)this) printf("AttachmentPoint::singlechannel NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::singlechannel NULL\n"); if(plugin_server && !plugin_server->multichannel) return 1; return 0; } @@ -210,7 +215,8 @@ int AttachmentPoint::singlechannel() void AttachmentPoint::render_gui(void *data, PluginServer *server) { //printf("AttachmentPoint::render_gui 1 %p %p\n", server, plugin_servers.get(0)); - if(!(void *)this) printf("AttachmentPoint::render_gui 1 NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::render_gui 1 NULL\n"); // Discard if not 1st plugin server, so single channel plugins don't get double GUI updates if(server != plugin_servers.get(0)) return; @@ -221,7 +227,8 @@ void AttachmentPoint::render_gui(void *data, PluginServer *server) void AttachmentPoint::render_gui(void *data, int size, PluginServer *server) { - if(!(void *)this) printf("AttachmentPoint::render_gui 2 NULL\n"); + void *This = this; + if(!This) printf("AttachmentPoint::render_gui 2 NULL\n"); // Discard if not 1st plugin server, so single channel plugins don't get double GUI updates if(server != plugin_servers.get(0)) return; @@ -239,7 +246,8 @@ int AttachmentPoint::gui_open() int AttachmentPoint::dump(FILE *fp) { - if((void *)this) + void *This = this; + if(This) { fprintf(fp," Attachmentpoint this=%p virtual_plugins=%d\n", this, new_virtual_plugins.total); if(plugin_server) plugin_server->dump(fp); diff --git a/cinelerra-5.1/cinelerra/cutads.C b/cinelerra-5.1/cinelerra/cutads.C index 595b375c..ac58d56a 100644 --- a/cinelerra-5.1/cinelerra/cutads.C +++ b/cinelerra-5.1/cinelerra/cutads.C @@ -813,7 +813,7 @@ cut_clip(Src &src, Dele *del, Dele *next) // report ranges clip_start = start_time - video.origin(); clip_end = end_time - video.origin(); - printf(" %f-%f (%f), %f-%f %ld-%ld", + printf(" %f-%f (%f), %f-%f %jd-%jd", start_time, end_time, end_time-start_time, clip_start, clip_end, video.frame_count(clip_start), video.frame_count(clip_end)); return 0; diff --git a/cinelerra-5.1/cinelerra/dcraw.c b/cinelerra-5.1/cinelerra/dcraw.c index 9543ae84..89632b68 100644 --- a/cinelerra-5.1/cinelerra/dcraw.c +++ b/cinelerra-5.1/cinelerra/dcraw.c @@ -968,12 +968,13 @@ void CLASS canon_sraw_load_raw() ip = (short (*)[4]) image; rp = ip[0]; for (row=0; row < height; row++, ip+=width) { - if (row & (jh.sraw >> 1)) + if (row & (jh.sraw >> 1)) { for (col=0; col < width; col+=2) for (c=1; c < 3; c++) if (row == height-1) ip[col][c] = ip[col-width][c]; else ip[col][c] = (ip[col-width][c] + ip[col+width][c] + 1) >> 1; + } for (col=1; col < width; col+=2) for (c=1; c < 3; c++) if (col == width-1) diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C index dbeb96a8..7849148e 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.C +++ b/cinelerra-5.1/cinelerra/ffmpeg.C @@ -2538,7 +2538,7 @@ int FFMPEG::scan(IndexState *index_state, int64_t *scan_position, int *canceled) int64_t pos = index_state->pos(ch); if( pos != aud->curr_pos ) { if( abs(pos-aud->curr_pos) > 1 ) -printf("audio%d pad %ld %ld (%ld)\n", aud->idx, pos, aud->curr_pos, pos-aud->curr_pos); +printf("audio%d pad %jd %jd (%jd)\n", aud->idx, pos, aud->curr_pos, pos-aud->curr_pos); index_state->pad_data(ch, nch, aud->curr_pos); } av_frame_unref(frame); diff --git a/cinelerra-5.1/cinelerra/filempeg.C b/cinelerra-5.1/cinelerra/filempeg.C index 54b006fc..44499f3b 100644 --- a/cinelerra-5.1/cinelerra/filempeg.C +++ b/cinelerra-5.1/cinelerra/filempeg.C @@ -159,7 +159,7 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len) cp += snprintf(cp,ep-cp, _("file path:%s\n"), path); int64_t bytes = mpeg3_get_bytes(fd); char string[BCTEXTLEN]; - sprintf(string,"%ld",bytes); + sprintf(string,"%jd",bytes); Units::punctuate(string); cp += snprintf(cp,ep-cp, _("size: %s"), string); @@ -192,7 +192,7 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len) cp += snprintf(cp,ep-cp, _(" v%d %s %dx%d"), vtrk, cmodel, width, height); double frame_rate = mpeg3_frame_rate(fd, vtrk); int64_t frames = mpeg3_video_frames(fd, vtrk); - cp += snprintf(cp,ep-cp, _(" (%5.2f), %ld frames"), frame_rate, frames); + cp += snprintf(cp,ep-cp, _(" (%5.2f), %jd frames"), frame_rate, frames); if( frame_rate > 0 ) { double secs = (double)frames / frame_rate; cp += snprintf(cp,ep-cp, _(" (%0.3f secs)"),secs); @@ -208,10 +208,10 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len) int sample_rate = mpeg3_sample_rate(fd, atrk); cp += snprintf(cp,ep-cp, _(" ch%d (%d)"), channels, sample_rate); int64_t samples = mpeg3_audio_samples(fd, atrk); - cp += snprintf(cp,ep-cp, " %ld",samples); + cp += snprintf(cp,ep-cp, " %jd",samples); int64_t nudge = mpeg3_get_audio_nudge(fd, atrk); *cp++ = nudge >= 0 ? '+' : (nudge=-nudge, '-'); - cp += snprintf(cp,ep-cp, _("%ld samples"),nudge); + cp += snprintf(cp,ep-cp, _("%jd samples"),nudge); if( sample_rate > 0 ) { double secs = (double)(samples+nudge) / sample_rate; cp += snprintf(cp,ep-cp, _(" (%0.3f secs)"),secs); diff --git a/cinelerra-5.1/cinelerra/framecache.C b/cinelerra-5.1/cinelerra/framecache.C index afb149f0..26ddde6f 100644 --- a/cinelerra-5.1/cinelerra/framecache.C +++ b/cinelerra-5.1/cinelerra/framecache.C @@ -302,7 +302,7 @@ void FrameCache::dump() printf("FrameCache::dump 1 %d\n", total()); FrameCacheItem *item = (FrameCacheItem *)first; while( item ) { - printf(" position=%jd frame_rate=%f age=%d size=%jd\n", + printf(" position=%jd frame_rate=%f age=%d size=%ld\n", item->position, item->frame_rate, item->age, item->data->get_data_size()); item = (FrameCacheItem*)item->next; diff --git a/cinelerra-5.1/cinelerra/garbage.C b/cinelerra-5.1/cinelerra/garbage.C index 8b15d8b6..c964ddce 100644 --- a/cinelerra-5.1/cinelerra/garbage.C +++ b/cinelerra-5.1/cinelerra/garbage.C @@ -58,7 +58,8 @@ void Garbage::add_user() int Garbage::remove_user() { - if(!(void *)this) return 0; + void *This = this; + if(!This) return 0; //printf("Garbage::remove_user %d lock=%p users=%d\n", __LINE__, lock, users); if(users <= 0) { diff --git a/cinelerra-5.1/cinelerra/playback3d.C b/cinelerra-5.1/cinelerra/playback3d.C index c2e015e2..89b52dcc 100644 --- a/cinelerra-5.1/cinelerra/playback3d.C +++ b/cinelerra-5.1/cinelerra/playback3d.C @@ -155,8 +155,8 @@ static const char *blend_##FN##_frag = \ "void main() {\n" \ " vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n" \ " vec4 result;\n" \ - " result.rgb = "SS(COLOR_##FN(1.0, gl_FragColor.rgb, gl_FragColor.a, canvas.rgb, canvas.a))";\n" \ - " result.a = "SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a))";\n" \ + " result.rgb = " SS(COLOR_##FN(1.0, gl_FragColor.rgb, gl_FragColor.a, canvas.rgb, canvas.a)) ";\n" \ + " result.a = " SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a)) ";\n" \ " gl_FragColor = mix(canvas, result, alpha);\n" \ "}\n" @@ -168,10 +168,10 @@ static const char *blend_##FN##_frag = \ "void main() {\n" \ " vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n" \ " vec4 result;\n" \ - " result.r = "SS(COLOR_##FN(1.0, gl_FragColor.r, gl_FragColor.a, canvas.r, canvas.a))";\n" \ - " result.g = "SS(COLOR_##FN(1.0, gl_FragColor.g, gl_FragColor.a, canvas.g, canvas.a))";\n" \ - " result.b = "SS(COLOR_##FN(1.0, gl_FragColor.b, gl_FragColor.a, canvas.b, canvas.a))";\n" \ - " result.a = "SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a))";\n" \ + " result.r = " SS(COLOR_##FN(1.0, gl_FragColor.r, gl_FragColor.a, canvas.r, canvas.a)) ";\n" \ + " result.g = " SS(COLOR_##FN(1.0, gl_FragColor.g, gl_FragColor.a, canvas.g, canvas.a)) ";\n" \ + " result.b = " SS(COLOR_##FN(1.0, gl_FragColor.b, gl_FragColor.a, canvas.b, canvas.a)) ";\n" \ + " result.a = " SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a)) ";\n" \ " result = clamp(result, 0.0, 1.0);\n" \ " gl_FragColor = mix(canvas, result, alpha);\n" \ "}\n" diff --git a/cinelerra-5.1/cinelerra/swindow.C b/cinelerra-5.1/cinelerra/swindow.C index 97b9144d..a4315b50 100644 --- a/cinelerra-5.1/cinelerra/swindow.C +++ b/cinelerra-5.1/cinelerra/swindow.C @@ -817,11 +817,11 @@ void SWindowGUI::load_script(FILE *fp) char value[64]; sprintf(value,"%ld",ftell(fp)); script_filesz->update(value); - sprintf(value,"%ld",script_line_no); + sprintf(value,"%jd",script_line_no); script_lines->update(value); sprintf(value,"%d",script.size()); script_entries->update(value); - sprintf(value,"%ld",script_text_lines); + sprintf(value,"%jd",script_text_lines); script_texts->update(value); int hw = 2*script_scroll->get_h(); script_scroll->update_length(script.size(), script_entry_no, hw, 0); @@ -863,7 +863,7 @@ void SWindowGUI::save_spumux_data() int64_t end = start + sedit->length; char *text = sedit->get_text(); if( *text ) { - fprintf(fp, "{%ld}{%ld}%s\n", start, end-1, text); + fprintf(fp, "{%jd}{%jd}%s\n", start, end-1, text); } start = end; } diff --git a/cinelerra-5.1/cinelerra/vattachmentpoint.C b/cinelerra-5.1/cinelerra/vattachmentpoint.C index ce787f83..85250b56 100644 --- a/cinelerra-5.1/cinelerra/vattachmentpoint.C +++ b/cinelerra-5.1/cinelerra/vattachmentpoint.C @@ -46,7 +46,8 @@ VAttachmentPoint::~VAttachmentPoint() void VAttachmentPoint::delete_buffer_vector() { - if(!(void *)this) printf("VAttachmentPoint::delete_buffer_vector NULL\n"); + void *This = this; + if(!This) printf("VAttachmentPoint::delete_buffer_vector NULL\n"); if(buffer_vector) { for(int i = 0; i < virtual_plugins.total; i++) @@ -58,7 +59,8 @@ void VAttachmentPoint::delete_buffer_vector() void VAttachmentPoint::new_buffer_vector(int width, int height, int colormodel) { - if(!(void *)this) printf("VAttachmentPoint::new_buffer_vector NULL\n"); + void *This = this; + if(!This) printf("VAttachmentPoint::new_buffer_vector NULL\n"); if(buffer_vector && (width != buffer_vector[0]->get_w() || height != buffer_vector[0]->get_h() || @@ -94,7 +96,8 @@ void VAttachmentPoint::render(VFrame *output, int debug_render, int use_opengl) { - if(!(void *)this) printf("VAttachmentPoint::render NULL\n"); + void *This = this; + if(!This) printf("VAttachmentPoint::render NULL\n"); if(!plugin_server || !plugin->on) return; if(debug_render) diff --git a/cinelerra-5.1/cinelerra/virtualvnode.C b/cinelerra-5.1/cinelerra/virtualvnode.C index e3c69f1e..f8c032a1 100644 --- a/cinelerra-5.1/cinelerra/virtualvnode.C +++ b/cinelerra-5.1/cinelerra/virtualvnode.C @@ -406,10 +406,10 @@ int VirtualVNode::render_projector(VFrame *input, VFrame *output, if(out_x2 > out_x1 && out_y2 > out_y1 && in_x2 > in_x1 && in_y2 > in_y1) { - IntAuto *mode_keyframe = 0; - mode_keyframe = + Auto *auto_keyframe = 0; + IntAuto *mode_keyframe = (IntAuto*)track->automation->autos[AUTOMATION_MODE]->get_prev_auto( - start_position_project, PLAY_FORWARD, (Auto* &)mode_keyframe); + start_position_project, PLAY_FORWARD, auto_keyframe); int mode = mode_keyframe->value; diff --git a/cinelerra-5.1/cinelerra/vmodule.C b/cinelerra-5.1/cinelerra/vmodule.C index 6d69dc3c..d9e1cbc9 100644 --- a/cinelerra-5.1/cinelerra/vmodule.C +++ b/cinelerra-5.1/cinelerra/vmodule.C @@ -976,7 +976,7 @@ int VModule::render(VFrame *output, //printf("VModule::render %d %p %ld %d\n", __LINE__, current_edit, start_position_project, direction); if(debug_render) - printf(" VModule::render %d %d %ld %s transition=%p opengl=%d current_edit=%p output=%p\n", + printf(" VModule::render %d %d %jd %s transition=%p opengl=%d current_edit=%p output=%p\n", __LINE__, use_nudge, start_position_project, diff --git a/cinelerra-5.1/db/utils/cpdb.C b/cinelerra-5.1/db/utils/cpdb.C index 8e966e18..7f9fc67d 100644 --- a/cinelerra-5.1/db/utils/cpdb.C +++ b/cinelerra-5.1/db/utils/cpdb.C @@ -75,7 +75,7 @@ int main(int ac, char **av) time_t t = (time_t) idb.clip_views.Access_time(); long dt = st.tv_sec - t; // 3 weeks + access count days - if( dt < 3*7*24*60*60 + idb.clip_views.Access_count()*24*60*60 ) + if( dt < 3*7*24*60*60 + (long)(idb.clip_views.Access_count()*24*60*60) ) continue; del_clip_set(&idb, idb.clip_set.id()); } diff --git a/cinelerra-5.1/db/utils/root_info.C b/cinelerra-5.1/db/utils/root_info.C index 93a2125f..c20a24bb 100644 --- a/cinelerra-5.1/db/utils/root_info.C +++ b/cinelerra-5.1/db/utils/root_info.C @@ -27,8 +27,8 @@ int main(int ac, char **av) printf(" root_info_id = %d\n",ip->root_info_id); printf(" index_info_id = %d\n",ip->index_info_id); printf(" page_info_id = %d\n",ip->page_info_id); - printf(" oldness = %ld\n",ip->oldness); - printf(" newness = %ld\n",ip->newness); + printf(" oldness = %jd\n",ip->oldness); + printf(" newness = %jd\n",ip->newness); return 0; } diff --git a/cinelerra-5.1/debian/changelog b/cinelerra-5.1/debian/changelog index 1fb432fb..d60c7625 100644 --- a/cinelerra-5.1/debian/changelog +++ b/cinelerra-5.1/debian/changelog @@ -1,4 +1,4 @@ -cin (1:5.1.20160831) unstable; urgency=low +cin (1:5.1.20161002) unstable; urgency=low [ guy goode ] diff --git a/cinelerra-5.1/debian/control b/cinelerra-5.1/debian/control index c29c74a2..4ab35e23 100644 --- a/cinelerra-5.1/debian/control +++ b/cinelerra-5.1/debian/control @@ -1,7 +1,7 @@ Source: cin Section: video Priority: optional -Standards-Version: 5.1.20160831 +Standards-Version: 5.1.20161002 Maintainer: mailing list Homepage: http://www.cinelerra-cv.org/ Build-Depends: nasm, yasm, g++, gdb, build-essential, e2fsprogs, diff --git a/cinelerra-5.1/guicast/bcsignals.C b/cinelerra-5.1/guicast/bcsignals.C index bb3e5958..e7c14074 100644 --- a/cinelerra-5.1/guicast/bcsignals.C +++ b/cinelerra-5.1/guicast/bcsignals.C @@ -510,7 +510,8 @@ int BC_Signals::x_error_handler(Display *display, XErrorEvent *event) char string[1024]; XGetErrorText(event->display, event->error_code, string, 1024); fprintf(stderr, "BC_Signals::x_error_handler: error_code=%d opcode=%d,%d id=0x%jx %s\n", - event->error_code, event->request_code, event->minor_code, event->resourceid, string); + event->error_code, event->request_code, event->minor_code, + (int64_t)event->resourceid, string); return 0; } diff --git a/cinelerra-5.1/plugins/overlay/overlay.C b/cinelerra-5.1/plugins/overlay/overlay.C index 359867fd..a8cc7c80 100644 --- a/cinelerra-5.1/plugins/overlay/overlay.C +++ b/cinelerra-5.1/plugins/overlay/overlay.C @@ -459,15 +459,15 @@ int Overlay::handle_opengl() #define GL_STD_FRAG(FN) static const char *blend_##FN##_frag = \ " vec4 result;\n" \ - " result.rgb = "SS(COLOR_##FN(1.0, src_color.rgb, src_color.a, dst_color.rgb, dst_color.a))";\n" \ - " result.a = "SS(ALPHA_##FN(1.0, src_color.a, dst_color.a))";\n" \ + " result.rgb = " SS(COLOR_##FN(1.0, src_color.rgb, src_color.a, dst_color.rgb, dst_color.a)) ";\n" \ + " result.a = " SS(ALPHA_##FN(1.0, src_color.a, dst_color.a))";\n" \ #define GL_VEC_FRAG(FN) static const char *blend_##FN##_frag = \ " vec4 result;\n" \ - " result.r = "SS(COLOR_##FN(1.0, src_color.r, src_color.a, dst_color.r, dst_color.a))";\n" \ - " result.g = "SS(COLOR_##FN(1.0, src_color.g, src_color.a, dst_color.g, dst_color.a))";\n" \ - " result.b = "SS(COLOR_##FN(1.0, src_color.b, src_color.a, dst_color.b, dst_color.a))";\n" \ - " result.a = "SS(ALPHA_##FN(1.0, src_color.a, dst_color.a))";\n" \ + " result.r = " SS(COLOR_##FN(1.0, src_color.r, src_color.a, dst_color.r, dst_color.a)) ";\n" \ + " result.g = " SS(COLOR_##FN(1.0, src_color.g, src_color.a, dst_color.g, dst_color.a)) ";\n" \ + " result.b = " SS(COLOR_##FN(1.0, src_color.b, src_color.a, dst_color.b, dst_color.a)) ";\n" \ + " result.a = " SS(ALPHA_##FN(1.0, src_color.a, dst_color.a)) ";\n" \ " result = clamp(result, 0.0, 1.0);\n" \ #undef mabs