c4bf34e7 by Jeff Balicki

slider and stuff

Signed-off-by: Jeff <jeff@gotenzing.com>
1 parent 078db86e
Showing 1000 changed files with 3751 additions and 0 deletions

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * @author ThemePunch <info@themepunch.com>
3 * @link http://www.themepunch.com/
4 * @copyright 2021 ThemePunch
5 */
6
7 .particles-icon {
8
9 padding: 2px;
10 border: 1px solid #3f444a;
11 margin: 2px 1px;
12 display: inline-block;
13 float: left;
14 vertical-align: top;
15 line-height: 0;
16 cursor: pointer;
17 margin-right: 4px;
18
19 }
20
21 .particles-icon:before { display: none!important }
22 .particles-icon svg { width: 20px; height: 20px; }
23
24 .particles-icon.selected {
25 border: 1px solid #b7bbc0;
26 box-shadow: 0 0 0 1px #b7bbc0;
27 }
28
29 .particles-icon:hover svg path,
30 .particles-icon.selected svg path{
31 fill: #b7bbc0;
32 }
33
34 .particles-circle {
35 width: 14px;
36 height: 14px;
37 margin: 3px;
38 display: block;
39 border-radius: 50%;
40 background: #777c80;
41 }
42
43 .particles-icon.selected .particles-circle {
44 background: #b7bbc0;
45 }
46
47
48 .add_part_color_lines,
49 .remove_part_color_lines { margin-right: 0px !important; margin-top: 5px; }
50
51 .add_part_color_lines i.material-icons,
52 .remove_part_color_lines i.material-icons { margin-left: 0px !important; }
53
54 .particle_color_wraps longoption label_a { width: 155px; min-width: 155px; }
55
56
57 #rb_tlw .particle_color_wraps .revbuilder-colorpicker { overflow: hidden; margin-top: 5px; }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 (function($) {
2
3 $(function() {
4
5 $('.revaddon-dismiss-notice').off().each(function() {
6
7 var noticeId = this.dataset.noticeid,
8 storedNoticeId;
9
10 try {
11 storedNoticeId = localStorage.getItem(this.dataset.addon);
12 }
13 catch(e) {
14 storedNoticeId = false;
15 }
16
17 if(noticeId !== storedNoticeId) {
18 $(this).closest('.revaddon-notice').show();
19 }
20 else {
21 $(this).closest('.revaddon-notice').hide();
22 }
23
24 // localStorage.removeItem(this.dataset.addon);
25
26 }).on('click', function() {
27
28 var $this = $(this);
29 $this.closest('.revaddon-notice').fadeOut(400, function() {$this.hide();});
30
31 try {
32 localStorage.setItem(this.dataset.addon, this.dataset.noticeid);
33 }
34 catch(e) {}
35
36 });
37
38 });
39
40 })(jQuery);
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * @author ThemePunch <info@themepunch.com>
4 * @link https://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class RevAddOnParticlesUpdate {
11 private $plugin_url = 'https://codecanyon.net/item/slider-revolution-responsive-wordpress-plugin/2751380';
12 private $remote_url_info = 'addons/revslider-particles-addon/revslider-particles-addon.php';
13 private $plugin_slug = 'revslider-particles-addon';
14 private $plugin_path = 'revslider-particles-addon/revslider-particles-addon.php';
15 private $version;
16 private $plugins;
17 private $option;
18 private $data;
19
20
21 public function __construct($version){
22 $this->option = $this->plugin_slug . '_update_info';
23 $this->version = $version;
24 $this->data = new stdClass;
25 $this->add_update_checks();
26 }
27
28
29 public function add_update_checks(){
30 add_filter('pre_set_site_transient_update_plugins', array(&$this, 'set_update_transient'));
31 add_filter('plugins_api', array(&$this, 'set_updates_api_results'), 10, 3);
32 }
33
34
35 public function set_update_transient($transient){
36 $this->_check_updates();
37
38 if(isset($transient) && !isset($transient->response)){
39 $transient->response = array();
40 }
41
42 if(!empty($this->data->basic) && is_object($this->data->basic)){
43 $version = (isset($this->data->basic->version)) ? $this->data->basic->version : $this->data->basic->new_version;
44 if(version_compare($this->version, $version, '<')){
45 $this->data->basic->new_version = $version;
46 if(isset($this->data->basic->version)){
47 unset($this->data->basic->version);
48 }
49 $transient->response[$this->plugin_path] = $this->data->basic;
50 }
51 }
52
53 return $transient;
54 }
55
56
57 public function set_updates_api_results($result, $action, $args){
58 $this->_check_updates();
59
60 if(isset($args->slug) && $args->slug == $this->plugin_slug && $action == 'plugin_information'){
61 if(is_object($this->data->full) && !empty($this->data->full)){
62 $result = $this->data->full;
63 }
64 }
65
66 return $result;
67 }
68
69
70 protected function _check_updates($force_check = false){
71 if((isset($_GET['checkforupdates']) && $_GET['checkforupdates'] == 'true') || isset($_GET["force-check"])) $force_check = true;
72
73 //Get data
74 if(empty($this->data)){
75 $data = get_option($this->option, false);
76 $data = $data ? $data : new stdClass;
77
78 $this->data = is_object($data) ? $data : maybe_unserialize($data);
79 }
80
81 $last_check = get_option('revslider_particles_addon-update-check');
82
83 if($last_check == false){ //first time called
84 $last_check = time();
85 update_option('revslider_particles_addon-update-check', $last_check);
86 }
87
88 //Check for updates
89 if(time() - $last_check > 60 * 60 * 24 * 30 || $force_check == true){
90 $data = $this->_retrieve_update_info();
91
92 if(isset($data->basic)){
93 update_option('revslider_particles_addon-update-check', time());
94
95 $this->data->checked = time();
96 $this->data->basic = $data->basic;
97 $this->data->full = $data->full;
98
99 update_option('revslider_particles_addon-latest-version', $data->full->version);
100 }
101 }
102
103 //Save results
104 update_option($this->option, $this->data);
105 }
106
107
108 public function _retrieve_update_info(){
109 $rslb = new RevSliderLoadBalancer();
110 $data = new stdClass;
111
112 //Build request
113 $purchase = (get_option('revslider-valid', 'false') == 'true') ? get_option('revslider-code', '') : '';
114 $rattr = array(
115 'code' => urlencode($purchase),
116 'version' => urlencode(RS_REVISION),
117 'addon_version' => urlencode($this->version),
118 );
119
120 $request = $rslb->call_url($this->remote_url_info, $rattr, 'updates');
121
122 if(!is_wp_error($request)){
123 if($response = maybe_unserialize($request['body'])){
124 if(is_object($response)){
125 $data = $response;
126
127 $data->basic->url = $this->plugin_url;
128 $data->full->url = $this->plugin_url;
129 $data->full->external = 1;
130 }
131 }
132 }
133
134 return $data;
135 }
136 }
137 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class RsAddOnParticlesNotice {
11
12 private $title,
13 $notice,
14 $version,
15 $txtDomain,
16 $noticeSlug;
17
18 public function __construct($notice, $title, $version) {
19
20 $this->notice = $notice;
21 $this->version = $version;
22 $this->title = ucfirst($title);
23 $this->txtDomain = 'rs_' . $title;
24 $this->noticeSlug = 'revslider_' . $title . '_addon';
25
26 add_action('admin_enqueue_scripts', array($this, 'enqueue_notice_script'));
27 add_action('admin_notices', array($this, 'add_notice'));
28
29 }
30
31 public function enqueue_notice_script() {
32
33 wp_enqueue_script($this->txtDomain . '-notice', RS_PARTICLES_PLUGIN_URL . 'admin/assets/js/dismiss-admin-notice.js', array('jquery'), $this->version, true);
34
35 }
36
37 /**
38 * Add notice
39 **/
40 public function add_notice() {
41
42 switch($this->notice) {
43
44 case 'add_notice_activation':
45 $id = md5($this->noticeSlug . '_add_notice_activation');
46 $this->notice = 'The <a href="?page=revslider">' . $this->title . ' Add-On</a> requires an active ' .
47 '<a href="//www.themepunch.com/slider-revolution/install-activate-and-update/#register-purchase-code" target="_blank">Purchase Code Registration</a>';
48 break;
49
50 case 'add_notice_plugin':
51 $id = md5($this->noticeSlug . '_add_notice_activation');
52 $this->notice = '<a href="//revolution.themepunch.com/" target="_blank">Slider Revolution</a> required to use the ' . $this->title . ' Add-On';
53 break;
54
55 case 'add_notice_version':
56 $id = md5($this->noticeSlug . '_add_notice_activation');
57 $this->notice = 'The ' . $this->title . ' Add-On requires Slider Revolution ' . RsAddOnParticlesBase::MINIMUM_VERSION .
58 ' <a href="//www.themepunch.com/slider-revolution/install-activate-and-update/#plugin-updates" target="_blank">Update Slider Revolution</a>';
59 break;
60
61 default:
62 $id = '';
63 $this->notice = '';
64 // end default
65
66 }
67
68 ?>
69 <div class="error below-h2 soc-notice-wrap revaddon-notice" style="display: none">
70 <p><?php _e($this->notice, $this->txtDomain); ?><span data-addon="<?php echo $this->txtDomain; ?>-notice" data-noticeid="<?php echo $id; ?>" style="float: right; cursor: pointer" class="revaddon-dismiss-notice dashicons dashicons-dismiss"></span></p>
71 </div>
72 <?php
73
74 }
75
76 }
77
78 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 require_once(RS_PARTICLES_PLUGIN_PATH . 'framework/base.class.php');
11
12 class RsParticlesBase extends RsAddOnParticlesBase {
13
14 protected static $_PluginPath = RS_PARTICLES_PLUGIN_PATH,
15 $_PluginUrl = RS_PARTICLES_PLUGIN_URL,
16 $_PluginTitle = 'particles',
17 $_FilePath = __FILE__,
18 $_Version = '6.7.4';
19
20 public function __construct() {
21
22 //load the textdomain, if the plugin should be translateable
23 parent::_loadPluginTextDomain();
24
25 // check to make sure all requirements are met
26 $notice = $this->systemsCheck();
27 if($notice) {
28
29 require_once(RS_PARTICLES_PLUGIN_PATH . 'framework/notices.class.php');
30
31 new RsAddOnParticlesNotice($notice, static::$_PluginTitle, static::$_Version);
32 return;
33
34 }
35
36 parent::loadClasses();
37
38 }
39
40 }
41 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class SrParticlesFront extends RevSliderFunctions {
11
12 private $slug;
13 private $script_enqueued = false;
14
15 public function __construct($slug) {
16 global $SR_GLOBALS;
17 $this->slug = $slug;
18 if($this->get_val($SR_GLOBALS, 'front_version') === 7){
19 add_filter('revslider_add_slider_base', array($this, 'enqueue_header_scripts'), 10, 1);
20 add_filter('sr_get_full_slider_JSON', array($this, 'add_modal_scripts'), 10, 2);
21 add_filter('revslider_export_html_file_inclusion', array($this, 'add_addon_files'), 10, 2);
22 }
23 if($this->get_val($_GET, 'page') === 'revslider'){
24 add_action('admin_footer', array($this, 'add_header_scripts_return'));
25 }
26 }
27
28 public function add_modal_scripts($obj, $slider){
29 if(!$this->is_in_use($slider)) return $obj;
30 $list = $this->get_script_list();
31 if(empty($list)) return $obj;
32 foreach($list ?? [] as $handle => $script){
33 $obj['addOns'][$handle] = $script;
34 }
35
36 return $obj;
37 }
38
39 public function add_header_scripts($script){
40 echo $this->add_header_scripts_return(false);
41 }
42
43 public function add_header_scripts_return($tags = ''){
44 if($tags !== false){
45 if($this->script_enqueued) return;
46 $this->script_enqueued = true;
47 }
48
49 $list = $this->get_script_list();
50 if(empty($list)) return '';
51
52 $tab = ($tags !== false) ? '' : ' ';
53 $nl = (count($list) > 1 || $tags === false) ? "\n" : '';
54 $html = '';
55 $html .= ($tags !== false) ? "<script>".$nl : '';
56 foreach($list ?? [] as $handle => $script){
57 $html .= $tab.'SR7.E.resources.'.$handle.' = "'. $script .'";'.$nl;
58 }
59 $html .= ($tags !== false) ? "</script>" . "\n" : '';
60
61 if($tags === false) return $html;
62
63 echo $html;
64 }
65
66 public function get_script_list(){
67 $min = file_exists(RS_PARTICLES_PLUGIN_PATH . 'public/js/' . $this->slug . '.js') ? '' : '.min';
68 if($min === '.min'){
69 return array('particles' => RS_PARTICLES_PLUGIN_URL.'public/js/' . $this->slug . $min . '.js');
70 }else{
71 return array(
72 'particles' => RS_PARTICLES_PLUGIN_URL.'public/js/' . $this->slug . $min . '.js',
73 'pjs' => RS_PARTICLES_PLUGIN_URL.'public/js/pjs.js'
74 );
75 }
76 }
77
78 public function enqueue_header_scripts($slider){
79 if($this->script_enqueued) return $slider;
80 if(empty($slider)) return $slider;
81
82 if($this->is_in_use($slider)) $this->enqueue_scripts();
83
84 return $slider;
85 }
86
87 public function is_in_use($slider){
88 if(empty($slider)) return false;
89
90 // check if we are an v7 slider
91 if($this->get_val($slider, array('settings', 'migrated'), false) !== false && $this->get_val($slider, array('settings', 'addOns', $this->slug, 'u')) === true) return true;
92 if($this->get_val($slider, array('params', 'migrated'), false) !== false && $this->get_val($slider, array('params', 'addOns', $this->slug, 'u')) === true) return true;
93
94 // check if we are v6
95 if($this->get_val($slider, array('slider_params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), false) === true) return true;
96 if($this->get_val($slider, array('params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), false) === true) return true;
97
98 // check v7 if false is set
99 if($this->get_val($slider, array('settings', 'migrated'), false) !== false && $this->get_val($slider, array('settings', 'addOns', $this->slug, 'u')) === false) return false;
100 if($this->get_val($slider, array('params', 'migrated'), false) !== false && $this->get_val($slider, array('params', 'addOns', $this->slug, 'u')) === false) return false;
101
102 // check v6 if false is set
103 if($this->get_val($slider, array('slider_params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), 'unset') === false) return false;
104 if($this->get_val($slider, array('params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), 'unset') === false) return false;
105
106 //check if we are v6, and maybe some deeper element needs the addon
107 $json = json_encode($slider, true);
108 $return = (strpos($json, 'revslider-'.$this->slug.'-addon') !== false) ? true : false;
109 unset($json);
110
111 return $return;
112 }
113
114 public function enqueue_scripts(){
115 add_action('revslider_pre_add_js', array($this, 'add_header_scripts'));
116 $this->script_enqueued = true;
117 $min = file_exists(RS_PARTICLES_PLUGIN_PATH . 'public/js/' . $this->slug . '.js') ? '' : '.min';
118 if($min === '.min'){
119 wp_enqueue_script('revslider-'.$this->slug.'-addon', RS_PARTICLES_PLUGIN_URL . "public/js/" . $this->slug . $min . ".js", '', RS_REVISION, array('strategy' => 'async'));
120 } else {
121 wp_enqueue_script('revslider-pjs-lib', RS_PARTICLES_PLUGIN_URL . "public/js/pjs.js", '', RS_REVISION, ['strategy' => 'async']);
122 wp_enqueue_script('revslider-'.$this->slug.'-addon', RS_PARTICLES_PLUGIN_URL . "public/js/" . $this->slug . $min . ".js", '', RS_REVISION, array('strategy' => 'async'));
123 }
124 }
125
126 public function add_addon_files($html, $export){
127 $output = $export->slider_output;
128 $addOn = $this->is_in_use($output->slider);
129 if(empty($addOn)) return $html;
130
131 $export_path_js = 'revslider-'.$this->slug.'-addon/public/js/';
132
133 $list = $this->get_script_list();
134 if(empty($list)) return '';
135
136 foreach($list ?? [] as $handle => $script){
137 $script_path = str_replace(RS_PARTICLES_PLUGIN_URL, RS_PARTICLES_PLUGIN_PATH, $script);
138 if(!$export->usepcl){
139 $export->zip->addFile($script_path, $export_path_js . $handle . '.js');
140 }else{
141 $export->pclzip->add($script_path, PCLZIP_OPT_REMOVE_PATH, RS_PARTICLES_PLUGIN_PATH.'public/js/', PCLZIP_OPT_ADD_PATH, $export_path_js);
142 }
143 $html = str_replace(array($script, str_replace('/', '\/', $script)), array($export_path_js . $handle . '.js', str_replace('/', '\/', $export_path_js . $handle . '.js')), $html);
144 }
145
146 return $html;
147 }
148 }
1 <div class="slider-revolution-update-list">
2 <h3 class="version-number">Version 6.7.4 (7th May 2024)</h3>
3 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
4 <ul>
5 <li>Position and Size of Particle canvas is miscalculated if Browser Zoom smaller/bigger than 100%</li>
6 </ul>
7 <h3 class="version-number">Version 6.7.3 (19th April 2024)</h3>
8 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
9 <ul>
10 <li>Fixed HTML export for V7 engine</li>
11 </ul>
12 <h3 class="version-number">Version 6.7.2 (16th April 2024)</h3>
13 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
14 <ul>
15 <li>Fixed resource loading in REST mode</li>
16 </ul>
17 <h3 class="version-number">Version 6.7.1 (1st April 2024)</h3>
18 <div class="bugfixes"><strong style="font-weight:700">Bugfixes</strong></div>
19 <ul>
20 <li>0px Sized Particles break the Velocity Engine</li>
21 </ul>
22 <h3 class="version-number">Version 6.7.0 (1st April 2024)</h3>
23 <div class="change"><strong style="font-weight:700">Introducing Velocity Engine</strong></div>
24 <ul>
25 <li>Now compatible with SR7 "Velocity" Engine in Slider Revolution 6.7.0, ensuring better performance and smoother user experience.</li>
26 </ul>
27 <h3 class="version-number">Version 3.3.3 (28th July 2023)</h3>
28 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
29 <ul>
30 <li>Particles override default color even if custom original color option is enabled</li>
31 </ul>
32 <h3 class="version-number">Version 3.3.2 (23rd December 2022)</h3>
33 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
34 <ul>
35 <li>Fixed HTML export bug where the js path would not be properly translated</li>
36 </ul>
37 <h3 class="version-number">Version 3.3.1 (7th July 2022)</h3>
38 <div class="change"><strong style="font-weight:700">Bugfixes</strong></div>
39 <ul>
40 <li>Particle color is not getting applied to some SVGs</li>
41 </ul>
42 <h3 class="version-number">Version 3.3.0 (11th January 2022)</h3>
43 <div class="change"><strong style="font-weight:700">Bugfixes</strong></div>
44 <ul>
45 <li>Particles animate faster on high refresh rate monitors</li>
46 </ul>
47 <h3 class="version-number">Version 3.2.6 (29th October 2021)</h3>
48 <div class="change"><strong style="font-weight:700">Bugfixes</strong></div>
49 <ul>
50 <li>3.2.4 update causes shrinking/growing particles to render blurry</li>
51 </ul>
52 <h3 class="version-number">Version 3.2.5 (20th October 2021)</h3>
53 <div class="change"><strong style="font-weight:700">Bugfixes</strong></div>
54 <ul>
55 <li>Fixed HTML Export not adding JS/CSS files</li>
56 </ul>
57 <h3 class="version-number">Version 3.2.4 (13th October 2021)</h3>
58 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
59 <ul>
60 <li>Hexagon SVG icon renders with extra line</li>
61 <li>Using big particle size renders blurry particles</li>
62 </ul>
63 <h3 class="version-number">Version 3.2.2 (29th July 2021)</h3>
64 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
65 <ul>
66 <li>Force Back: Added new option to force particles effect behind layers in case
67 you want to use link Sensibility option over layers but still want to
68 display particles effect behind layers</li>
69 </ul>
70 <h3 class="version-number">Version 3.2.1 (24th June 2021)</h3>
71 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
72 <ul>
73 <li>Particles flicker at edge while using bubble interaction with pulse</li>
74 </ul>
75 <h3 class="version-number">Version 3.2.0 (23rd June 2021)</h3>
76 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
77 <ul>
78 <li>JavaScript load on front end even if addon is disabled in slider</li>
79 <li>Addon does not update to latest version</li>
80 </ul>
81 <h3 class="version-number">Version 3.0.1 (10th May 2021)</h3>
82 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
83 <ul>
84 <li>Added Defered Async JS Loading Support</li>
85 </ul>
86 <h3 class="version-number">Version 2.3.5 (02 April 2021)</h3>
87
88 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
89 <ul>
90 <li>Custom 1 Colored SVG files from Original library can not be colored by particle styles</li>
91 </ul>
92
93 <h3 class="version-number">Version 2.3.4 (08 March 2021)</h3>
94
95 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
96 <ul>
97 <li>Custom SVGs with metadata cause particles addon rendering to fail</li>
98 </ul>
99
100 <h3 class="version-number">Version 2.3.3 (04 February 2021)</h3>
101
102 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
103 <ul>
104 <li>Minor optimizations</li>
105 </ul>
106
107 <h3 class="version-number">Version 2.3.2 (04 January 2021)</h3>
108
109 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
110 <ul>
111 <li>Fixed: Particle color was not being applied to custom SVG icons, now particle color will be applied to custom SVG that has only one SVG element in it.</li>
112 </ul>
113
114 <h3 class="version-number">Version 2.3.1 (09 November 2020)</h3>
115
116 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
117 <ul>
118 <li>Fixed: Particles failed to load on first slide in carousel slider</li>
119 </ul>
120
121 <h3 class="version-number">Version 2.3.0 (10 October 2020)</h3>
122
123 <div class="change"><strong style="font-weight:700">NEW FEATURES</strong></div>
124 <ul>
125 <li>Added custom SVG Support (Version 6.3.0 required)</li>
126 <li>Added original Color option in case Custom SVG used as Particle</li>
127 <li>Added Responsive Size management</li>
128 </ul>
129
130 <h3 class="version-number">Version 2.2.6 (28 July 2020)</h3>
131
132 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
133 <ul>
134 <li>Fixed broken backend due to incompatibility with WordPress 5.5</li>
135 </ul>
136
137 <h3 class="version-number">Version 2.2.5 (18 June 2020)</h3>
138
139 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
140 <ul>
141 <li>Fixed errors from happening while slide change</li>
142 </ul>
143
144 <h3 class="version-number">Version 2.2.4 (05 June 2020)</h3>
145
146 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
147 <ul>
148 <li>Fixed typos in backend</li>
149 </ul>
150
151 <h3 class="version-number">Version 2.2.3 (27th May 2020)</h3>
152
153 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
154 <ul>
155 <li>Reduced sensitivity of particle reduction calculation</li>
156 <li>Particles are now slowly removed over period of 5 seconds instead of removing them suddenly</li>
157 </ul>
158
159 <h3 class="version-number">Version 2.2.2 (8th May 2020)</h3>
160
161 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
162 <ul>
163 <li>Fixed reference errors to destroyed objects</li>
164 <li>Updated performance measurement logic for quicker optimization</li>
165 </ul>
166
167 <h3 class="version-number">Version 2.2.1 (7th May 2020)</h3>
168
169 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
170 <ul>
171 <li>Fixed error in grab effect</li>
172 </ul>
173
174
175 <h3 class="version-number">Version 2.2.0 (5th May 2020)</h3>
176
177 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
178 <ul>
179 <li>Optimized drawing and calculations to improve performance</li>
180 <li>Added support to play/pause drawing when slider is not in viewport</li>
181 <li>Added support to measure performance and reduce number of particles to improve performance</li>
182 </ul>
183
184 <h3 class="version-number">Version 2.1.0 (23th Sep 2019)</h3>
185
186 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
187 <ul>
188 <li>Fixed Custom Preset Loading issues</li>
189 </ul>
190
191 <h3 class="version-number">Version 2.0 (1st May 2019)</h3>
192
193 <div class="change"><strong style="font-weight:700">NEW FEATURES</strong></div>
194 <ul>
195 <li>Updated for Slider Revolution 6.0 compatibility</li>
196 <li>Particles settings can now vary on different Slides</li>
197 <li>1250+ more particle SVGs to choose from now</li>
198 <li>Multiple particle SVG's can be combined for any presentation</li>
199 <li>Easing option added for Repulse interaction effect</li>
200 </ul>
201
202 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
203 <ul>
204 <li>Updated for Slider Revolution 6.0 compatibility</li>
205 </ul>
206
207
208 <h3 class="version-number">Version 1.0.5 (18th Sep 2017)</h3>
209
210 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
211 <ul>
212 <li>Scripts will only be enqueued now if Add-On is officially enabled from the Slider settings</li>
213 </ul>
214
215 <h3 class="version-number">Version 1.0.4 (27nd March 2017)</h3>
216
217 <div class="change"><strong style="font-weight:700">BUFIXES</strong></div>
218 <ul>
219 <li>Fixed issue where particles were sometimes incorrectly sized for full-width layouts</li>
220 </ul>
221
222 <h3 class="version-number">Version 1.0.3 (22nd February 2017)</h3>
223
224 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
225 <ul>
226 <li>Updated for compatibility with Slider Revolution v.5.4</li>
227 </ul>
228
229 <h3 class="version-number">Version 1.0.2 (3rd January 2016)</h3>
230
231 <div class="bugfix"><strong style="font-weight:700">BUGFIXES</strong></div>
232 <ul>
233 <li>Fixed issue where particles could not be shown on a single slide only</li>
234 </ul>
235
236 <h3 class="version-number">Version 1.0.1 (30th December 2016)</h3>
237
238 <div class="bugfix"><strong style="font-weight:700">BUGFIXES</strong></div>
239 <ul>
240 <li>Fixed "Arrays are not allowed in class constants" error for PHP versions 5.5 or less</li>
241 <li>Fixed update issue where update information was not always available</li>
242 </ul>
243
244 </div>
1 <?php
2 /*
3 Plugin Name: Slider Revolution Particles Effect
4 Plugin URI: http://www.themepunch.com/
5 Description: Add interactive particle animations to your sliders
6 Author: ThemePunch
7 Version: 6.7.4
8 Author URI: http://themepunch.com
9 */
10
11 // delete_option('revslider_addon_particles_templates');
12
13 // If this file is called directly, abort.
14 if(!defined('WPINC')) die;
15
16 define('RS_PARTICLES_PLUGIN_PATH', plugin_dir_path(__FILE__));
17 define('RS_PARTICLES_PLUGIN_URL', str_replace('index.php', '', plugins_url( 'index.php', __FILE__)));
18
19 require_once(RS_PARTICLES_PLUGIN_PATH . 'includes/base.class.php');
20
21 /**
22 * handle everyting by calling the following function *
23 **/
24 function rs_particles_init(){
25
26 new RsParticlesBase();
27
28 }
29
30 /**
31 * call all needed functions on plugins loaded *
32 **/
33 add_action('plugins_loaded', 'rs_particles_init');
34 register_activation_hook( __FILE__, 'rs_particles_init');
35
36 //build js global var for activation
37 add_filter( 'revslider_activate_addon', array('RsAddOnParticlesBase','get_data'),10,2);
38
39 // get help definitions on-demand. merges AddOn definitions with core revslider definitions
40 add_filter( 'revslider_help_directory', array('RsAddOnParticlesBase','get_help'),10,1);
41
42
43 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 /*
11 all the custom SVGs
12 */
13 class RsParticlesSvg {
14
15 public static $_SVGs = array(
16
17 'heart_1' => 'M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z',
18 'star_2' => 'M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z',
19 'settings' => 'M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z',
20 'arrow_1' => 'M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z',
21 'bullseye' => 'M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z',
22 'plus_1' => 'M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z',
23 'triangle_2' => 'M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z',
24 'smilie' => 'M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z',
25 'star_3' => 'M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z',
26 'heart_2' => 'M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z',
27 'plus_2' => 'M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z',
28 'close' => 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z',
29 'arrow_2' => 'M22 12l-4-4v3H3v2h15v3z',
30 'dollar' => 'M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z',
31 'sun_1' => 'M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z',
32 'sun_2' => 'M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z',
33 'snowflake' => 'M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22z',
34 'party' => 'M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z',
35 'flower_1' => 'M18.7 12.4c-.28-.16-.57-.29-.86-.4.29-.11.58-.24.86-.4 1.92-1.11 2.99-3.12 3-5.19-1.79-1.03-4.07-1.11-6 0-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55-1.92-1.11-4.2-1.03-6 0 0 2.07 1.07 4.08 3 5.19.28.16.57.29.86.4-.29.11-.58.24-.86.4-1.92 1.11-2.99 3.12-3 5.19 1.79 1.03 4.07 1.11 6 0 .28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54 1.92 1.11 4.2 1.03 6 0-.01-2.07-1.08-4.08-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z',
36 'flower_2' => 'M12 22c4.97 0 9-4.03 9-9-4.97 0-9 4.03-9 9zM5.6 10.25c0 1.38 1.12 2.5 2.5 2.5.53 0 1.01-.16 1.42-.44l-.02.19c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5l-.02-.19c.4.28.89.44 1.42.44 1.38 0 2.5-1.12 2.5-2.5 0-1-.59-1.85-1.43-2.25.84-.4 1.43-1.25 1.43-2.25 0-1.38-1.12-2.5-2.5-2.5-.53 0-1.01.16-1.42.44l.02-.19C14.5 2.12 13.38 1 12 1S9.5 2.12 9.5 3.5l.02.19c-.4-.28-.89-.44-1.42-.44-1.38 0-2.5 1.12-2.5 2.5 0 1 .59 1.85 1.43 2.25-.84.4-1.43 1.25-1.43 2.25zM12 5.5c1.38 0 2.5 1.12 2.5 2.5s-1.12 2.5-2.5 2.5S9.5 9.38 9.5 8s1.12-2.5 2.5-2.5zM3 13c0 4.97 4.03 9 9 9 0-4.97-4.03-9-9-9z',
37 'fire' => 'M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z',
38 'pizza' => 'M12 2C8.43 2 5.23 3.54 3.01 6L12 22l8.99-16C18.78 3.55 15.57 2 12 2zM7 7c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm5 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z'
39
40 );
41
42 }
43 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * @author ThemePunch <info@themepunch.com>
3 * @link http://www.themepunch.com/
4 * @copyright 2021 ThemePunch
5 */
6
7 .rs-particles-canvas {
8
9 position: absolute;
10 top: 0;
11 left: 0;
12 width: 100%;
13 height: 100%;
14 opacity: 0;
15 pointer-events: none;
16 transition: opacity 0.5s linear;
17 -webkit-user-select: none;
18 -moz-user-select: none;
19 -ms-user-select: none;
20 user-select: none;
21
22 }
23
24 /* interactive, no slidelink */
25 .rs-particles-interactive .rs-particles-canvas {
26
27 pointer-events: auto;
28
29 }
30
31 /* interactive + slidelink */
32 .rs-particles-slidelink .rs-particles-canvas {
33
34 cursor: pointer;
35 pointer-events: auto;
36
37 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if( !defined( 'ABSPATH') ) exit();
9
10 class RsParticlesSlideFront extends RevSliderFunctions {
11
12 private $title,
13 $strings = array('shape', 'color', 'zIndex', 'direction', 'hoverMode', 'clickMode'),
14 $booleans = array('random', 'enable', 'opacityRandom', 'randomSpeed', 'straight', 'bounce', 'sync');
15
16 public function __construct($title) {
17
18 $this->title = $title;
19 add_action('revslider_add_li_data', array($this, 'write_slide_attributes'), 10, 3);
20
21 }
22
23 // HANDLE ALL TRUE/FALSE
24 private function isFalse($val) {
25
26 if(empty($val)) return true;
27 if($val === true || $val === 'on' || $val === 1 || $val === '1' || $val === 'true') return false;
28 return true;
29
30 }
31
32 private function isEnabled($slider){
33
34 $settings = $slider->get_params();
35 $enabled = $this->get_val($settings, array('addOns', 'revslider-' . $this->title . '-addon', 'enable'), false);
36 $addOn = $this->get_val($settings, array('addOns', 'revslider-' . $this->title . '-addon'), false);
37
38 return ($this->isFalse($enabled)) ? false : $addOn;
39 }
40
41 private function sanitize($key, $val) {
42
43 if(is_null($val)) return false;
44 if(in_array($key, $this->strings)) return $val;
45 if(in_array($key, $this->booleans)) return !$this->isFalse($val);
46
47 if(is_string($val)) {
48
49 if(strpos($val, '.') !== false) return floatval($val);
50 return intval($val);
51
52 }
53
54 return $val;
55
56 }
57
58 private function shrinkObject(&$a, $b) {
59
60 foreach($a as $key => $value) {
61
62 if(array_key_exists($key, $b)) {
63
64 if(is_array($value)) {
65
66 $a[$key] = $this->shrinkObject($value, $b[$key]);
67 if(empty($a[$key])) unset($a[$key]);
68
69 }
70 else {
71
72 $a[$key] = $this->sanitize($key, $value);
73 if($a[$key] === $b[$key]) unset($a[$key]);
74
75 }
76
77 }
78
79 }
80
81 return $a;
82
83 }
84
85 public function write_slide_attributes($slider, $slide) {
86
87 $enabled = $this->isEnabled($slider);
88
89 if(empty($enabled)) return;
90
91 $addOn = $this->isEnabled($slide);
92 if(empty($addOn)) return;
93
94 if(wp_is_mobile()) {
95
96 $enabled = $this->get_val($addOn, 'hideOnMobile', false);
97 if(!$this->isFalse($enabled)) return;
98
99 }
100
101 $addOn = json_encode($addOn);
102 $addOn = json_decode($addOn, true);
103
104 $this->shrinkObject($addOn, array(
105
106 'particles' => array(
107 'shape' => 'circle',
108 'number' => 80,
109 'size' => 6,
110 'sizeMin' => 1,
111 'random' => true
112 ),
113 'styles' => array(
114 'border' => array(
115 'enable' => false,
116 'color' => '#ffffff',
117 'opacity' => 100,
118 'size' => 1
119 ),
120 'lines' => array(
121 'enable' => false,
122 'color' => '#ffffff',
123 'width' => 1,
124 'opacity' => 100,
125 'distance' => 150
126 ),
127 'particle' => array(
128 'color' => '#ffffff',
129 'opacity' => 100,
130 'opacityMin' => 10,
131 'opacityRandom' => false,
132 'zIndex' => 'default'
133 )
134 ),
135 'movement' => array(
136 'enable' => true,
137 'randomSpeed' => true,
138 'speed' => 1,
139 'speedMin' => 1,
140 'direction' => 'none',
141 'straight' => true,
142 'bounce' => false
143 ),
144 'interactivity' => array(
145 'hoverMode' => 'none',
146 'clickMode' => 'none'
147 ),
148 'bubble' => array(
149 'distance' => 400,
150 'size' => 40,
151 'opacity' => 40
152 ),
153 'grab' => array(
154 'distance' => 400,
155 'opacity' => 50
156 ),
157 'repulse' => array(
158 'distance' => 200,
159 'easing' => 100
160 ),
161 'pulse' => array(
162 'size' => array(
163 'enable' => false,
164 'speed' => 40,
165 'min' => 1,
166 'sync' => false
167 ),
168 'opacity' => array(
169 'enable' => false,
170 'speed' => 3,
171 'min' => 0,
172 'sync' => false
173 )
174 )
175
176 ));
177
178 echo " data-rsparticles='" . json_encode($addOn) . "'";
179
180 }
181
182 }
183 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class RsParticlesSliderFront extends RevSliderFunctions {
11
12 private $version,
13 $pluginUrl,
14 $pluginTitle;
15
16 public function __construct($version, $pluginUrl, $pluginTitle, $isAdmin = false) {
17 $this->version = $version;
18 $this->pluginUrl = $pluginUrl;
19 $this->pluginTitle = $pluginTitle;
20
21 add_action('revslider_slider_init_by_data_post', array($this, 'check_addon_active'), 10, 1);
22 if($isAdmin){
23 //add_action('wp_enqueue_scripts', array($this, 'add_scripts'));
24 }
25 add_action('revslider_fe_javascript_output', array($this, 'write_init_script'), 10, 2);
26 add_action('revslider_get_slider_wrapper_div', array($this, 'check_if_ajax_loaded'), 10, 2);
27 add_filter('revslider_get_slider_html_addition', array($this, 'add_html_script_additions'), 10, 2);
28 add_action('revslider_export_html_write_footer', array($this, 'write_export_footer'), 10, 1);
29 add_filter('revslider_export_html_file_inclusion', array($this, 'add_addon_files'), 10, 2);
30
31 }
32
33 public function write_export_footer($export){
34 $output = $export->slider_output;
35 $array = $this->add_html_script_additions(array(), $output);
36 $toload = $this->get_val($array, 'toload', array());
37 if(!empty($toload)){
38 foreach($toload as $script){
39 echo $script;
40 }
41 }
42 }
43
44 public function add_addon_files($html, $export){
45 $output = $export->slider_output;
46 $addOn = $this->isEnabled($output->slider);
47 if(empty($addOn)) return $html;
48
49 $_jsPathMin = file_exists(RS_PARTICLES_PLUGIN_PATH . 'sr6/assets/js/revolution.addon.' . $this->pluginTitle . '.js') ? '' : '.min';
50 if(!$export->usepcl){
51 $export->zip->addFile(RS_PARTICLES_PLUGIN_PATH . 'sr6/assets/js/revolution.addon.' . $this->pluginTitle . $_jsPathMin . '.js', 'js/revolution.addon.' . $this->pluginTitle . $_jsPathMin . '.js');
52 $export->zip->addFile(RS_PARTICLES_PLUGIN_PATH . 'sr6/assets/css/revolution.addon.' . $this->pluginTitle . '.css', 'css/revolution.addon.' . $this->pluginTitle . '.css');
53 }else{
54 $export->pclzip->add(RS_PARTICLES_PLUGIN_PATH.'sr6/assets/js/revolution.addon.' . $this->pluginTitle . $_jsPathMin . '.js', PCLZIP_OPT_REMOVE_PATH, RS_PARTICLES_PLUGIN_PATH.'sr6/assets/js/', PCLZIP_OPT_ADD_PATH, 'js/');
55 $export->pclzip->add(RS_PARTICLES_PLUGIN_PATH.'sr6/assets/css/revolution.addon.' . $this->pluginTitle . '.css', PCLZIP_OPT_REMOVE_PATH, RS_PARTICLES_PLUGIN_PATH.'sr6/assets/css/', PCLZIP_OPT_ADD_PATH, 'css/');
56 }
57
58 $html = str_replace($this->pluginUrl.'sr6/assets/css/revolution.addon.' . $this->pluginTitle . '.css', 'css/revolution.addon.' . $this->pluginTitle . '.css', $html);
59 $html = str_replace($this->pluginUrl.'sr6/assets/js/revolution.addon.' . $this->pluginTitle . $_jsPathMin .'.js', $export->path_js .'revolution.addon.' . $this->pluginTitle . $_jsPathMin .'.js', $html);
60
61 return $html;
62 }
63
64 // HANDLE ALL TRUE/FALSE
65 private function isFalse($val) {
66 if(empty($val)) return true;
67 if($val === true || $val === 'on' || $val === 1 || $val === '1' || $val === 'true') return false;
68
69 return true;
70 }
71
72 private function isEnabled($slider){
73 $settings = $slider->get_params();
74 $enabled = $this->get_val($settings, array('addOns', 'revslider-' . $this->pluginTitle . '-addon', 'enable'), false);
75
76 if(!$this->isFalse($enabled)) return true;
77
78 // check static
79 $static_slide = $slider->get_static_slide();
80 if($static_slide instanceof RevSliderSlide){
81 $params = $static_slide->get_params();
82 if($this->get_val($params, array('addOns', 'revslider-' . $this->pluginTitle . '-addon', 'enable'), false) === true) return true;
83 }
84
85 $slides = $slider->get_slides();
86 if(empty($slides)) return false;
87
88 foreach($slides ?? [] as $slide){
89 if($this->get_val($slide, array('params', 'addOns', 'revslider-' . $this->pluginTitle . '-enable'), false) === true) return true;
90 }
91
92 return false;
93 }
94
95 public function check_addon_active($record) {
96 if(empty($record)) return $record;
97
98 // addon enabled
99 $addOn = $this->isEnabled($record);
100 if(empty($addOn)) return $record;
101
102 $this->add_scripts();
103 remove_action('revslider_slider_init_by_data_post', array($this, 'check_addon_active'), 10);
104
105 return $record;
106
107 }
108
109 public function add_scripts() {
110 $handle = 'rs-' . $this->pluginTitle . '-front';
111 $base = $this->pluginUrl . 'sr6/assets/';
112
113 $path = $base . 'js/revolution.addon.' . $this->pluginTitle . '.min.js';
114 $_jsPathMin = file_exists(RS_PARTICLES_PLUGIN_PATH . 'sr6/assets/js/revolution.addon.' . $this->pluginTitle . '.js') ? '' : '.min';
115
116 wp_enqueue_style($handle, $base . 'css/revolution.addon.' . $this->pluginTitle . '.css', array(), $this->version);
117 wp_enqueue_script($handle, $base . 'js/revolution.addon.' . $this->pluginTitle . $_jsPathMin . '.js', array('jquery'), $this->version, true);
118
119 add_filter('revslider_modify_waiting_scripts', array($this, 'add_waiting_script_slugs'), 10, 1);
120 }
121
122 public function add_html_script_additions($return, $output){
123 if($output instanceof RevSliderSlider){
124 $addOn = $this->isEnabled($output);
125 if(empty($addOn)) return $return;
126 }else{
127 $me = $output->get_markup_export();
128 if($me !== true && $output->ajax_loaded !== true) return $return;
129
130 $addOn = $this->isEnabled($output->slider);
131 if(empty($addOn)) return $return;
132 }
133
134 $waiting = array();
135 $waiting = $this->add_waiting_script_slugs($waiting);
136 if(!empty($waiting)){
137 if(!isset($return['waiting'])) $return['waiting'] = array();
138 foreach($waiting as $wait){
139 $return['waiting'][] = $wait;
140 }
141 }
142
143 $global = $output->get_global_settings();
144 $addition = ($output->_truefalse($output->get_val($global, array('script', 'defer'), false)) === true) ? ' async="" defer=""' : '';
145 $_jsPathMin = file_exists(RS_PARTICLES_PLUGIN_PATH . 'sr6/assets/js/revolution.addon.' . $this->pluginTitle . '.js') ? '' : '.min';
146
147 $return['toload']['particles'] = '<script'. $addition .' src="'. $this->pluginUrl . 'sr6/assets/js/revolution.addon.' . $this->pluginTitle . $_jsPathMin . '.js"></script>';
148
149 return $return;
150 }
151
152 public function add_waiting_script_slugs($wait){
153 $wait[] = 'particles';
154 return $wait;
155 }
156
157 public function check_if_ajax_loaded($r, $output) {
158 $me = $output->get_markup_export();
159 if($me !== true && $output->ajax_loaded !== true) return $r;
160
161 $addOn = $this->isEnabled($output->slider);
162 if(empty($addOn)) return $r;
163
164 $html = '<link rel="stylesheet" href="'. $this->pluginUrl . 'sr6/assets/css/revolution.addon.' . $this->pluginTitle . '.css">'."\n";
165 return $html . $r;
166 }
167
168 public function write_init_script($slider, $id) {
169
170 $enabled = $this->isEnabled($slider);
171 if(!empty($enabled)) {
172
173 $title = $this->pluginTitle;
174 $id = $slider->get_id();
175
176 echo "\n";
177 echo ' if(typeof RsParticlesAddOn !== "undefined") RsParticlesAddOn(revapi' . $id . ');' . "\n";
178
179 }
180
181 }
182
183 }
184 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if( !defined( 'ABSPATH') ) exit();
9
10 class RsParticlesSliderFront extends RevSliderFunctions {
11
12 private $version,
13 $pluginUrl,
14 $pluginTitle;
15
16 public function __construct($version, $pluginUrl, $pluginTitle, $isAdmin = false) {
17
18 $this->version = $version;
19 $this->pluginUrl = $pluginUrl;
20 $this->pluginTitle = $pluginTitle;
21
22 if(!$isAdmin) add_action('revslider_slide_initByData', array($this, 'check_addon_active'), 10, 1);
23 else add_action('wp_enqueue_scripts', array($this, 'add_scripts'));
24
25 add_action('revslider_fe_javascript_output', array($this, 'write_init_script'), 10, 2);
26 // add_action('revslider_fe_javascript_option_output', array($this, 'write_init_options'), 10, 1);
27
28 }
29
30 // HANDLE ALL TRUE/FALSE
31 private function isFalse($val) {
32
33 if(empty($val)) return true;
34 if($val === true || $val === 'on' || $val === 1 || $val === '1' || $val === 'true') return false;
35 return true;
36
37 }
38
39 private function isEnabled($slider) {
40
41 $settings = $slider->get_params();
42 if(empty($settings)) return false;
43
44 $addOns = $this->get_val($settings, 'addOns', false);
45 if(empty($addOns)) return false;
46
47 $addOn = $this->get_val($addOns, 'revslider-' . $this->pluginTitle . '-addon', false);
48 if(empty($addOn)) return false;
49
50 $enabled = $this->get_val($addOn, 'enable', false);
51 if($this->isFalse($enabled)) return false;
52
53 return $addOn;
54
55 }
56
57 public function add_scripts() {
58
59 $handle = 'rs-' . $this->pluginTitle . '-front';
60 $base = $this->pluginUrl . 'sr6/assets/';
61
62 wp_enqueue_style(
63
64 $handle,
65 $base . 'css/revolution.addon.' . $this->pluginTitle . '.css',
66 array(),
67 $this->version
68
69 );
70
71 wp_enqueue_script(
72
73 $handle,
74 $base . 'js/revolution.addon.' . $this->pluginTitle . '.min.js',
75 array('jquery'),
76 $this->version,
77 true
78
79 );
80
81 add_filter('revslider_modify_waiting_scripts', array($this, 'add_waiting_script_slugs'), 10, 1);
82 }
83
84
85 public function add_waiting_script_slugs($wait){
86 $wait[] = 'particles';
87 return $wait;
88 }
89
90 public function check_addon_active($record) {
91
92 if(empty($record)) return $record;
93
94 $params = $this->get_val($record, 'params', false);
95 $sliderId = $this->get_val($record, 'slider_id', false);
96
97 if(empty($params) || empty($sliderId)) return $record;
98
99 $params = json_decode($params);
100 if(empty($params)) return $record;
101
102 $slider = new RevSliderSlider();
103 $slider->init_by_id($sliderId);
104 if(empty($slider)) return $record;
105
106 // addon enabled
107 $addOn = $this->isEnabled($slider);
108 if(empty($addOn)) return $record;
109
110 $this->add_scripts();
111 remove_action('revslider_slide_initByData', array($this, 'check_addon_active'), 10);
112
113 return $record;
114
115 }
116
117 public function write_init_script($slider, $id) {
118
119 $enabled = $this->isEnabled($slider);
120 if(!empty($enabled)) {
121
122 $title = $this->pluginTitle;
123 $id = $slider->get_id();
124
125 echo "\n";
126 echo ' if(typeof RsParticlesAddOn !== "undefined") RsParticlesAddOn(revapi' . $id . ');' . "\n";
127
128 }
129
130 }
131
132 }
133 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * @author ThemePunch <info@themepunch.com>
3 * @link http://www.themepunch.com/
4 * @copyright 2021 ThemePunch
5 */
6
7
8 .tp-transitionpack { overflow: hidden; }
9
10
11 row.twocolorfields .revbuilder-colorpicker.revbuilder-cpicker-master-wrap { width: 69px !important; overflow: hidden}
12 row.twocolorfields .revbuilder-colorpicker.revbuilder-cpicker-master-wrap .layerinput,
13 #tpack_twistsettings .revbuilder-colorpicker.revbuilder-cpicker-master-wrap .layerinput { display:none;}
14
15 row oneshort .chrt_lngtxt { max-width: 28px; margin-right: 7px; }
16
17 .tpacktrans.disabled {
18 display: none !important;
19 }
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 (function($) {
2
3 $(function() {
4
5 $('.revaddon-dismiss-notice').off().each(function() {
6
7 var noticeId = this.dataset.noticeid,
8 storedNoticeId;
9
10 try {
11 storedNoticeId = localStorage.getItem(this.dataset.addon);
12 }
13 catch(e) {
14 storedNoticeId = false;
15 }
16
17 if(noticeId !== storedNoticeId) {
18 $(this).closest('.revaddon-notice').show();
19 }
20 else {
21 $(this).closest('.revaddon-notice').hide();
22 }
23
24 // localStorage.removeItem(this.dataset.addon);
25
26 }).on('click', function() {
27
28 var $this = $(this);
29 $this.closest('.revaddon-notice').fadeOut(400, function() {$this.hide();});
30
31 try {
32 localStorage.setItem(this.dataset.addon, this.dataset.noticeid);
33 }
34 catch(e) {}
35
36 });
37
38 });
39
40 })(jQuery);
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /**
3 * @author ThemePunch <info@themepunch.com>
4 * @link https://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class RevAddOnTransitionpackUpdate {
11 private $plugin_url = 'https://codecanyon.net/item/slider-revolution-responsive-wordpress-plugin/2751380';
12 private $remote_url_info = 'addons/revslider-transitionpack-addon/revslider-transitionpack-addon.php';
13 private $plugin_slug = 'revslider-transitionpack-addon';
14 private $plugin_path = 'revslider-transitionpack-addon/revslider-transitionpack-addon.php';
15 private $version;
16 private $plugins;
17 private $option;
18 private $data;
19
20
21 public function __construct($version){
22 $this->option = $this->plugin_slug . '_update_info';
23 $this->version = $version;
24 $this->data = new stdClass;
25 $this->add_update_checks();
26 }
27
28
29 public function add_update_checks(){
30 add_filter('pre_set_site_transient_update_plugins', array(&$this, 'set_update_transient'));
31 add_filter('plugins_api', array(&$this, 'set_updates_api_results'), 10, 3);
32 }
33
34
35 public function set_update_transient($transient){
36 $this->_check_updates();
37
38 if(isset($transient) && !isset($transient->response)){
39 $transient->response = array();
40 }
41
42 if(!empty($this->data->basic) && is_object($this->data->basic)){
43 $version = (isset($this->data->basic->version)) ? $this->data->basic->version : $this->data->basic->new_version;
44 if(version_compare($this->version, $version, '<')){
45 $this->data->basic->new_version = $version;
46 if(isset($this->data->basic->version)){
47 unset($this->data->basic->version);
48 }
49 $transient->response[$this->plugin_path] = $this->data->basic;
50 }
51 }
52
53 return $transient;
54 }
55
56
57 public function set_updates_api_results($result, $action, $args){
58 $this->_check_updates();
59
60 if(isset($args->slug) && $args->slug == $this->plugin_slug && $action == 'plugin_information'){
61 if(!empty($this->data->full) && is_object($this->data->full)){
62 $result = $this->data->full;
63 }
64 }
65
66 return $result;
67 }
68
69
70 protected function _check_updates($force_check = false){
71 if((isset($_GET['checkforupdates']) && $_GET['checkforupdates'] == 'true') || isset($_GET["force-check"])) $force_check = true;
72
73 //Get data
74 if(empty($this->data)){
75 $data = get_option($this->option, false);
76 $data = $data ? $data : new stdClass;
77
78 $this->data = is_object($data) ? $data : maybe_unserialize($data);
79 }
80
81 $last_check = get_option('revslider_transitionpack_addon-update-check');
82
83 if($last_check == false){ //first time called
84 $last_check = time();
85 update_option('revslider_transitionpack_addon-update-check', $last_check);
86 }
87
88 //Check for updates
89 if(time() - $last_check > 60 * 60 * 24 * 30 || $force_check == true){
90 $data = $this->_retrieve_update_info();
91
92 if(isset($data->basic)){
93 update_option('revslider_transitionpack_addon-update-check', time());
94
95 $this->data->checked = time();
96 $this->data->basic = $data->basic;
97 $this->data->full = $data->full;
98
99 update_option('revslider_transitionpack_addon-latest-version', $data->full->version);
100 }
101 }
102
103 //Save results
104 update_option($this->option, $this->data);
105 }
106
107
108 public function _retrieve_update_info(){
109 $rslb = new RevSliderLoadBalancer();
110 $data = new stdClass;
111
112 //Build request
113 $purchase = (get_option('revslider-valid', 'false') == 'true') ? get_option('revslider-code', '') : '';
114 $rattr = array(
115 'code' => urlencode($purchase),
116 'version' => urlencode(RS_REVISION),
117 'addon_version' => urlencode($this->version),
118 );
119
120 $request = $rslb->call_url($this->remote_url_info, $rattr, 'updates');
121
122 if(!is_wp_error($request)){
123 if($response = maybe_unserialize($request['body'])){
124 if(is_object($response)){
125 $data = $response;
126
127 $data->basic->url = $this->plugin_url;
128 $data->full->url = $this->plugin_url;
129 $data->full->external = 1;
130 }
131 }
132 }
133
134 return $data;
135 }
136 }
137 ?>
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class RsAddOnTransitionpackNotice {
11
12 private $title,
13 $notice,
14 $version,
15 $txtDomain,
16 $noticeSlug;
17
18 public function __construct($notice, $title, $version) {
19
20 $this->notice = $notice;
21 $this->version = $version;
22 $this->title = ucfirst($title);
23 $this->txtDomain = 'rs_' . $title;
24 $this->noticeSlug = 'revslider_' . $title . '_addon';
25
26 add_action('admin_enqueue_scripts', array($this, 'enqueue_notice_script'));
27 add_action('admin_notices', array($this, 'add_notice'));
28
29 }
30
31 public function enqueue_notice_script() {
32
33 wp_enqueue_script($this->txtDomain . '-notice', RS_TRANSITIONPACK_PLUGIN_URL . 'admin/assets/js/dismiss-admin-notice.js', array('jquery'), $this->version, true);
34
35 }
36
37 /**
38 * Add notice
39 **/
40 public function add_notice() {
41
42 switch($this->notice) {
43
44 case 'add_notice_activation':
45 $id = md5($this->noticeSlug . '_add_notice_activation');
46 $this->notice = 'The <a href="?page=revslider">' . $this->title . ' Add-On</a> requires an active ' .
47 '<a href="//www.themepunch.com/slider-revolution/install-activate-and-update/#register-purchase-code" target="_blank">Purchase Code Registration</a>';
48 break;
49
50 case 'add_notice_plugin':
51 $id = md5($this->noticeSlug . '_add_notice_activation');
52 $this->notice = '<a href="//revolution.themepunch.com/" target="_blank">Slider Revolution</a> required to use the ' . $this->title . ' Add-On';
53 break;
54
55 case 'add_notice_version':
56 $id = md5($this->noticeSlug . '_add_notice_activation');
57 $this->notice = 'The ' . $this->title . ' Add-On requires Slider Revolution ' . RsAddOnTransitionpackBase::MINIMUM_VERSION .
58 ' <a href="//www.themepunch.com/slider-revolution/install-activate-and-update/#plugin-updates" target="_blank">Update Slider Revolution</a>';
59 break;
60
61 default:
62 $id = '';
63 $this->notice = '';
64 // end default
65
66 }
67
68 ?>
69 <div class="error below-h2 soc-notice-wrap revaddon-notice" style="display: none">
70 <p><?php _e($this->notice, $this->txtDomain); ?><span data-addon="<?php echo $this->txtDomain; ?>-notice" data-noticeid="<?php echo $id; ?>" style="float: right; cursor: pointer" class="revaddon-dismiss-notice dashicons dashicons-dismiss"></span></p>
71 </div>
72 <?php
73
74 }
75
76 }
77
78 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 require_once(RS_TRANSITIONPACK_PLUGIN_PATH . 'framework/base.class.php');
11
12 class RsTransitionpackBase extends RsAddOnTransitionpackBase {
13
14 protected static $_PluginPath = RS_TRANSITIONPACK_PLUGIN_PATH,
15 $_PluginUrl = RS_TRANSITIONPACK_PLUGIN_URL,
16 $_PluginTitle = 'transitionpack',
17 $_FilePath = __FILE__,
18 $_Version = '6.7.5';
19
20 public function __construct() {
21
22 //load the textdomain, if the plugin should be translateable
23 parent::_loadPluginTextDomain();
24
25 // check to make sure all requirements are met
26 $notice = $this->systemsCheck();
27 if($notice) {
28
29 require_once(RS_TRANSITIONPACK_PLUGIN_PATH . 'framework/notices.class.php');
30
31 new RsAddOnTransitionpackNotice($notice, static::$_PluginTitle, static::$_Version);
32 return;
33
34 }
35
36 parent::loadClasses();
37
38 }
39
40 }
41 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 *****************************************
2 SLIDER REVOLUTION TRANSITION PACK ADDON
3 USED RESOURCES AND ITS LICENSES
4 *****************************************
5
6
7 THREE.JS AND ITS LIBRARES
8 -------------------------------
9 @author spidersharma / http://eduperiment.com/
10 Inspired from Unreal Engine::
11 https://docs.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/Bloom/
12
13 *FADE EFFECT (and all Texture from THREE.JS Examples)
14
15
16
17 RESOURCES FROM GL TRANSITIONS (https://gl-transitions.com/)
18 --------------------------------------------
19 All Codechanges done by ThemePunch
20
21 *MOSAIC EFFECT
22 // License: MIT
23 // Author: Xaychru
24 // ported by gre from https://gist.github.com/Xaychru/130bb7b7affedbda9df5
25
26 *DREAMY EFFECT
27 // Author: mikolalysenko
28 // License: MIT
29
30 *MORPH EFFECT
31 // Author: paniq
32 // License: MIT
33
34 *LINEAR BLUR
35 // author: gre
36 // license: MIT
37
38 *WATER DROP
39 // author: Paweł Płóciennik
40 // license: MIT
41
42 *ZOOMOVER EFFECT
43 // License: MIT
44 // Author: rectalogic
45 // ported by gre from https://gist.github.com/rectalogic/b86b90161503a0023231
46
47 // Converted from https://github.com/rectalogic/rendermix-basic-effects/blob/master/assets/com/rendermix/CrossZoom/CrossZoom.frag
48 // Which is based on https://github.com/evanw/glfx.js/blob/master/src/filters/blur/zoomblur.js
49 // With additional easing functions from https://github.com/rectalogic/rendermix-basic-effects/blob/master/assets/com/rendermix/Easing/Easing.glsllib
50
51 *MIRRORCUBE
52 // Author: gre
53 // License: MIT
54
55
56
57 RESOURCES FROM SHADERTOYS
58 ------------------------------------------------
59 WATER EFFECT by https://www.shadertoy.com/user/anemolo https://www.shadertoy.com/view/tdj3W3
60 BURN OVER Code by https://www.shadertoy.com/user/clay
61
62
63
64 GLSL SANDBOX
65 ----------------------------------------------------
66 BURN EFFECTS - Based on http://glslsandbox.com/e#35642.0
67 Ported by https://www.shadertoy.com/user/aiekick to SHADERTOYS:
68 https://www.shadertoy.com/view/ltV3RG
69
70
71
72 RESOURCES FROM TYPMANUS/CODROPS
73 --------------------------------
74 Creative WebGL Image Transitions
75 *EFFECTS: FADE, WAVE, OVERSCALE, CUT, OVERROLL, VERTICALMELT, COLORFLOW, STRETCH
76 https://tympanus.net/codrops/2019/11/05/creative-webgl-image-transitions/
77 https://github.com/akella/webGLImageTransitions/blob/master/README.md
78
79
80 GLITCH2 EFFECT - Original Effect Relay on
81 ----------------------------------------------
82 Author : Ian McEwan, Ashima Arts.
83 License : Copyright (C) 2011 Ashima Arts. All rights reserved. Distributed under the MIT License. See LICENSE file. https://github.com/ashima/webgl-noise
84
85
86
1 <?php
2 /*
3 * @author ThemePunch <info@themepunch.com>
4 * @link http://www.themepunch.com/
5 * @copyright 2024 ThemePunch
6 */
7
8 if(!defined('ABSPATH')) exit();
9
10 class SrTransitionPackFront extends RevSliderFunctions {
11
12 private $slug;
13 private $script_enqueued = false;
14
15 public function __construct($slug) {
16 global $SR_GLOBALS;
17 $this->slug = $slug;
18 if($this->get_val($SR_GLOBALS, 'front_version') === 7){
19 add_filter('revslider_add_slider_base', array($this, 'enqueue_header_scripts'), 10, 1);
20 add_filter('sr_get_full_slider_JSON', array($this, 'add_modal_scripts'), 10, 2);
21 add_filter('revslider_export_html_file_inclusion', array($this, 'add_addon_files'), 10, 2);
22 }
23 if($this->get_val($_GET, 'page') === 'revslider'){
24 add_action('admin_footer', array($this, 'add_header_scripts_return'));
25 add_action('admin_footer', array($this, 'write_footer_scripts'));
26 }
27 }
28
29 public function add_modal_scripts($obj, $slider){
30 if(!$this->is_in_use($slider)) return $obj;
31 $list = $this->get_script_list();
32 foreach($list ?? [] as $handle => $script){
33 $obj['addOns'][$handle] = $script;
34 }
35 $addition = $this->get_addition_list(false);
36 foreach($addition ?? [] as $handle => $script){
37 $obj['addOns'][$handle] = $script;
38 }
39 return $obj;
40 }
41
42 public function add_header_scripts($script){
43 echo $this->add_header_scripts_return(false);
44 }
45
46 public function add_header_scripts_return($tags = ''){
47 if($tags !== false){
48 if($this->script_enqueued) return;
49 $this->script_enqueued = true;
50 }
51 $list = $this->get_script_list();
52 $addition = $this->get_addition_list();
53 if(empty($list) && empty($addition)) return '';
54 $nl = ((count($list) + count($addition)) > 1 || $tags === false) ? "\n" : '';
55 $tab = ($tags !== false) ? '' : ' ';
56 $html = '';
57 $html .= ($tags !== false) ? "<script>".$nl : '';
58 foreach($list ?? [] as $handle => $script){
59 $html .= $tab.'SR7.E.resources.'.$handle.' = "'. $script .'";'.$nl;
60 }
61
62 foreach($addition ?? [] as $handle => $script){
63 $html .= $tab.$handle.' = "'. $script .'";'.$nl;
64 }
65 $html .= ($tags !== false) ? "</script>" . "\n" : '';
66
67 if($tags === false) return $html;
68
69 echo $html;
70 }
71
72 public function get_script_list(){
73 $min = file_exists(RS_TRANSITIONPACK_PLUGIN_PATH . 'public/js/' . $this->slug . '.js') ? '' : '.min';
74 return array('transitionpack' => RS_TRANSITIONPACK_PLUGIN_URL.'public/js/' . $this->slug . $min . '.js');
75 }
76
77 public function get_addition_list($full = true){
78 $path = ($full === true) ? 'SR7.E.resources.' : '';
79 return array($path.'tpackURL' => RS_TRANSITIONPACK_PLUGIN_URL);
80 }
81
82 public function enqueue_header_scripts($slider){
83 if($this->script_enqueued) return $slider;
84 if(empty($slider)) return $slider;
85
86 if($this->is_in_use($slider)) $this->enqueue_scripts();
87
88 return $slider;
89 }
90
91 public function is_in_use($slider){
92 if(empty($slider)) return false;
93
94 // check if we are an v7 slider
95 if($this->get_val($slider, array('settings', 'migrated'), false) !== false && $this->get_val($slider, array('settings', 'addOns', $this->slug, 'u')) === true) return true;
96 if($this->get_val($slider, array('params', 'migrated'), false) !== false && $this->get_val($slider, array('params', 'addOns', $this->slug, 'u')) === true) return true;
97
98 // check if we are v6
99 if($this->get_val($slider, array('slider_params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), false) === true) return true;
100 if($this->get_val($slider, array('params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), false) === true) return true;
101
102 // check v7 if false is set
103 if($this->get_val($slider, array('settings', 'migrated'), false) !== false && $this->get_val($slider, array('settings', 'addOns', $this->slug, 'u')) === false) return false;
104 if($this->get_val($slider, array('params', 'migrated'), false) !== false && $this->get_val($slider, array('params', 'addOns', $this->slug, 'u')) === false) return false;
105
106 // check v6 if false is set
107 if($this->get_val($slider, array('slider_params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), 'unset') === false) return false;
108 if($this->get_val($slider, array('params', 'addOns', 'revslider-'.$this->slug.'-addon', 'enable'), 'unset') === false) return false;
109
110 //check if we are v6, and maybe some deeper element needs the addon
111 $json = json_encode($slider, true);
112 $return = (strpos($json, 'revslider-'.$this->slug.'-addon') !== false) ? true : false;
113 unset($json);
114
115 return $return;
116 }
117
118 public function enqueue_scripts(){
119 add_action('revslider_pre_add_js', array($this, 'add_header_scripts'));
120 $this->script_enqueued = true;
121 $min = file_exists(RS_TRANSITIONPACK_PLUGIN_PATH . 'public/js/' . $this->slug . '.js') ? '' : '.min';
122 wp_enqueue_script('revslider-'.$this->slug.'-addon', RS_TRANSITIONPACK_PLUGIN_URL . "public/js/" . $this->slug . $min . ".js", '', RS_REVISION, array('strategy' => 'async'));
123 }
124
125 public function write_footer_scripts(){
126 echo '<script type="text/javascript">window.RVS = window.RVS || {}; window.RVS.ENV = window.RVS.ENV || {}; window.RVS.ENV.TRANSITIONPACK_URL = "'.RS_TRANSITIONPACK_PLUGIN_URL.'";</script>'."\n";
127 }
128
129
130 public function add_addon_files($html, $export){
131 $output = $export->slider_output;
132 $addOn = $this->is_in_use($output->slider);
133 if(empty($addOn)) return $html;
134
135 $export_path_js = 'revslider-'.$this->slug.'-addon/public/js/';
136 $dynamic_files = array(
137 RS_TRANSITIONPACK_PLUGIN_PATH.'public/shaders/' => 'revslider-'.$this->slug.'-addon/public/shaders/',
138 RS_TRANSITIONPACK_PLUGIN_PATH.'public/textures/displacement/' => 'revslider-'.$this->slug.'-addon/public/textures/displacement/',
139 RS_TRANSITIONPACK_PLUGIN_PATH.'public/textures/transition/' => 'revslider-'.$this->slug.'-addon/public/textures/transition/'
140 );
141
142 $list = $this->get_script_list();
143 if(empty($list)) return '';
144
145 foreach($list ?? [] as $handle => $script){
146 $script_path = str_replace(RS_TRANSITIONPACK_PLUGIN_URL, RS_TRANSITIONPACK_PLUGIN_PATH, $script);
147 if(!$export->usepcl){
148 $export->zip->addFile($script_path, $export_path_js . $handle . '.js');
149 }else{
150 $export->pclzip->add($script_path, PCLZIP_OPT_REMOVE_PATH, RS_TRANSITIONPACK_PLUGIN_PATH.'public/js/', PCLZIP_OPT_ADD_PATH, $export_path_js);
151 }
152
153 foreach($dynamic_files ?? [] as $folder => $zippath){
154 $files = scandir($folder);
155 foreach($files ?? [] as $file){
156 if(!is_file($folder . $file)) continue;
157 if(!$export->usepcl){
158 $export->zip->addFile($folder . $file, $zippath . $file);
159 }else{
160 $export->pclzip->add($folder . $file, PCLZIP_OPT_REMOVE_PATH, $folder, PCLZIP_OPT_ADD_PATH, $zippath);
161 }
162 }
163 }
164 $html = str_replace(array($script, str_replace('/', '\/', $script)), array($export_path_js . $handle . '.js', str_replace('/', '\/', $export_path_js . $handle . '.js')), $html);
165 }
166
167 $addition = $this->get_addition_list();
168 foreach($addition ?? [] as $handle => $script){
169 $_script = str_replace(WP_PLUGIN_URL, '', $script);
170 $html = str_replace(array($script, str_replace('/', '\/', $script)), array('.'.$_script, str_replace('/', '\/', '.'.$_script)), $html);
171 }
172
173 return $html;
174 }
175 }
1 uniform float left;
2 uniform float top;
3 uniform float ox;
4 uniform float oy;
5 uniform float zIn;
6 uniform float zOut;
7 uniform float roz;
8 uniform float rEnd;
9 uniform bool isShort;
10 uniform float prange;
11 uniform vec4 resolution;
12 uniform float intensity;
13 uniform float progress;
14 uniform sampler2D src1;
15 uniform sampler2D src2;
16 varying vec2 vUv;
17 const int passes = 6;
18 float pi = 3.141592653;
19
20 vec4 getFromColor(vec2 uv) {
21 return TEXTURE2D(src1, uv);
22 }
23 vec4 getToColor(vec2 uv) {
24 return TEXTURE2D(src2, uv);
25 }
26
27 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
28 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
29 }
30 vec2 mirror(vec2 v) {
31 vec2 m = mod(v, 2.0);
32 return mix(m, 2.0 - m, step(1.0, m));
33 }
34 vec2 rotate(vec2 uv, vec2 mid, float rotation) {
35 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
36 }
37 vec2 zoomFunction(vec2 uv, vec2 o, float z, float m) {
38 uv -= o;
39 uv *= 1. + z * m;
40 uv += o;
41 return uv;
42 }
43 void main() {
44 vec2 o = vec2(ox, oy);
45 vec2 uv = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
46 float ratio = resolution.x / resolution.y;
47 vec4 c1 = vec4(0.0);
48 vec4 c2 = vec4(0.0);
49 float disp = intensity * (0.5 - distance(0.5, progress));
50 float m = progress;
51 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m, 0., 1.);
52 float rm = map(0., rEnd, 0., 1., m, 0., 1.);
53 o.x *= ratio;
54 uv.x *= ratio;
55 uv = rotate(uv, o, roz * pi * progress);
56 uv.x /= ratio;
57 o.x /= ratio;
58 vec2 uvIn = uv;
59 vec2 uvOut = uv;
60 if (isShort) {
61 uvIn.x -= o.x * 2.;
62 uvIn.y -= o.y * 2.;
63 }
64 float zm = sin(pi * progress);
65 if (zOut != 0.) uvOut = zoomFunction(uvOut, o, max(zOut, -0.9), progress);
66 if (zIn != 0.) uvIn = zoomFunction(uvIn, o, max(zIn, -0.9), 1. - progress);
67 for (int xi = 0; xi < passes; xi++) {
68 float x = float(xi) / float(passes) - 0.5;
69 for (int yi = 0; yi < passes; yi++) {
70 float y = float(yi) / float(passes) - 0.5;
71 vec2 v = vec2(x, y);
72 float d = disp;
73 vec2 nUvOut = vec2(uvOut.x + progress * left, uvOut.y + progress * top) + d * v;
74 nUvOut = mirror(nUvOut);
75 vec2 nUvIn = vec2(uvIn.x + progress * left, uvIn.y + progress * top) + d * v;
76 nUvIn = mirror(nUvIn);
77 if (mod(left, 2.0) != 0.) nUvIn.x *= -1.;
78 if (mod(top, 2.0) != 0.) nUvIn.y *= -1.;
79 c1 += getFromColor(nUvOut);
80 c2 += getToColor(nUvIn);
81 }
82 }
83 c1 /= float(passes * passes);
84 c2 /= float(passes * passes);
85 gl_FragColor = mix(c1, c2, nprog);
86 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform int dir;
2 uniform float intensity;
3 uniform float progress;
4 uniform sampler2D src1;
5 uniform sampler2D src2;
6 varying vec2 vUv;
7 uniform vec4 resolution;
8 float Hash(vec2 p) {
9 vec3 p2 = vec3(p.xy, 1.0);
10 return fract(sin(dot(p2, vec3(37.1, 61.7, 12.4))) * 10.);
11 }
12 float noise(in vec2 p) {
13 vec2 i = floor(p);
14 vec2 f = fract(p);
15 f *= f * (3.0 - 2.0 * f);
16 return mix(mix(Hash(i + vec2(0., 0.)), Hash(i + vec2(1., 0.)), f.x), mix(Hash(i + vec2(0., 1.)), Hash(i + vec2(1., 1.)), f.x), f.y);
17 }
18 float fbm(vec2 p) {
19 float v = 0.0;
20 v += noise(p * 1.) * .4;
21 v += noise(p * 2.) * .2;
22 v += noise(p * 4.) * .135;
23 return v;
24 }
25 void main() {
26 float nIntensity = intensity / 3.;
27 vec2 uv = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
28 vec4 src = TEXTURE2D(src1, uv);
29 vec4 tgt = TEXTURE2D(src2, uv);
30 vec4 col = src;
31 float pr = progress;
32 float d;
33 float efEnd = dir == 1 || dir == 2 ? 0.5 : 0.8 * nIntensity;
34 float efStart = dir == 1 || dir == 2 ? 0.5 : 1. * nIntensity - .3;
35 if (dir == 0) {
36 uv.x += efStart;
37 d = -uv.x + 0.5 * fbm(uv * 30.1) * intensity + pr * 1.3 + efEnd * pr;
38 }
39 if (dir == 1) {
40 uv.x -= efStart;
41 d = uv.x - 0.5 * fbm(uv * 30.1) * intensity + pr * 1.3 + efEnd * pr;
42 }
43 if (dir == 2) {
44 uv.y -= efStart;
45 d = uv.y - 0.5 * fbm(uv * 30.1) * intensity + pr * 1.3 + efEnd * pr;
46 }
47 if (dir == 3) {
48 uv.y += efStart;
49 d = -uv.y + 0.5 * fbm(uv * 30.1) * intensity + pr * 1.3 + efEnd * pr;
50 }
51 if (d > 0.35 + (0.1 * (1. - nIntensity))) col.rgb = clamp(col.rgb - (d - 0.35 - (0.1 * (1. - nIntensity))) * 10., 0.0, 1.0);
52 if (d > 0.47) {
53 if (d < 0.5) col.rgb += (d - 0.4) * 35.0 * 0.4 * (0.1 + noise(100. * uv + vec2(-pr, 0.))) * vec3(1.5, 0.5, 0.0);
54 else col += tgt;
55 }
56 gl_FragColor = col;
57 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform vec4 resolution;
2 uniform float progress;
3 uniform sampler2D src1;
4 uniform sampler2D src2;
5 uniform sampler2D displacement;
6 uniform int useTexture;
7 varying vec2 vUv;
8 void main() {
9 float p = progress;
10 vec2 uv = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
11 vec4 col = vec4(0.);
12 vec4 heightmap = TEXTURE2D(displacement, uv).rrra;
13 vec4 background = TEXTURE2D(src1, uv);
14 vec4 foreground = TEXTURE2D(src2, uv);
15 float t = p * 1.2;
16 vec4 erosion = smoothstep(t - .2, t, heightmap);
17 vec4 border = smoothstep(0., .1, erosion) - smoothstep(.1, 1., erosion);
18 col = (1. - erosion) * foreground + erosion * background;
19 vec4 leadcol = vec4(1., .5, .1, 1.);
20 vec4 trailcol = vec4(0.2, .4, 1., 1.);
21 vec4 fire = mix(leadcol, trailcol, smoothstep(0.8, 1., border)) * 2.;
22 col += border * fire;
23 gl_FragColor = col;
24 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float prange;
2 uniform float left;
3 uniform float top;
4 uniform int dir;
5 uniform float progress;
6 uniform vec4 resolution;
7 uniform sampler2D src1;
8 uniform sampler2D src2;
9 uniform float intensity;
10 varying vec2 vUv;
11 vec2 mirror(vec2 v) {
12 vec2 m = mod(v, 2.0);
13 return mix(m, 2.0 - m, step(1.0, m));
14 }
15 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
16 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
17 }
18 void main() {
19 vec2 uv = vUv;
20 vec2 vw = uv - 0.5;
21 vec2 vwo = vw;
22 float m = progress;
23 float w = m;
24 float mult = (w - 0.5) * 2.;
25 mult = (-(mult * mult) + 1.);
26 #replaceChaos vw = mix(vwo, vw, mult * intensity / 10.);
27 uv = .5 + (vw.xy);
28 vec2 nUv = vec2(uv.x + m * left, uv.y + m * top);
29 nUv = mirror(nUv);
30 vec2 nUvIn = nUv;
31 if (mod(left, 2.) != 0.) nUvIn.x *= -1.;
32 if (mod(top, 2.) != 0.) nUvIn.y *= -1.;
33 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., progress, 0., 1.);
34 vec4 col = mix(TEXTURE2D(src1, nUv), TEXTURE2D(src2, nUvIn), nprog);
35 gl_FragColor = col;
36 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float progress;
2 uniform float intensity;
3 uniform sampler2D src1;
4 uniform sampler2D src2;
5 uniform sampler2D displacement;
6 uniform vec4 resolution;
7 varying vec2 vUv;
8 uniform float left;
9 uniform float top;
10 uniform float angle;
11 vec2 mirror(vec2 v) {
12 vec2 m = mod(v, 2.0);
13 return mix(m, 2.0 - m, step(1.0, m));
14 }
15 mat2 getRotM(float angle) {
16 float s = sin(angle);
17 float c = cos(angle);
18 return mat2(c, -s, s, c);
19 }
20 const float PI = 3.1415;
21 void main() {
22 vec2 newUV = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
23 vec4 disp = TEXTURE2D(displacement, newUV);
24 vec2 dispVec = vec2(disp.r, disp.g);
25 vec2 distort1 = getRotM(angle) * dispVec * intensity * progress;
26 vec2 distort2 = getRotM(angle - PI) * dispVec * intensity * (1.0 - progress);
27 if (left != 0.) {
28 distort1.x *= left;
29 distort2.x *= left;
30 }
31 if (top != 0.) {
32 distort1.y *= top;
33 distort2.y *= top;
34 }
35 vec2 distortedPosition1 = newUV + distort1;
36 vec2 distortedPosition2 = newUV + distort2;
37 vec4 t1 = TEXTURE2D(src1, mirror(distortedPosition1));
38 vec4 t2 = TEXTURE2D(src2, mirror(distortedPosition2));
39 gl_FragColor = mix(t1, t2, progress);
40 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float progress;
2 uniform sampler2D src1;
3 uniform sampler2D src2;
4 uniform vec4 resolution;
5
6 uniform float zoomStrength;
7 uniform float amo; //Amount of Circles
8 uniform float sd; //Seed for rnd. Change For diffrent result
9 uniform float Cs; //Size of the Circle
10
11 uniform float rMin;
12 uniform float rMax;
13 uniform float gMin;
14 uniform float gMax;
15 uniform float bMin;
16 uniform float bMax;
17 varying vec2 vUv;
18 const int passes = 6;
19 float pi = 3.141592653;
20
21
22 vec4 getFromColor(vec2 uv) {
23 return TEXTURE2D(src1, uv);
24 }
25 vec4 getToColor(vec2 uv) {
26 return TEXTURE2D(src2, uv);
27 }
28
29 float rnd(float n, float seed){
30 return sin(cos(n * 5823. * seed) * 3145.);
31 }
32
33 float circle(vec2 pos,float size, vec2 p){
34 return smoothstep(0.0,1.0,(size-length(p-pos)));
35 }
36
37 vec3 blur(sampler2D tex,vec2 p, float size, float amp){
38
39 vec3 color = vec3(0.0);
40 float am = 1.0/pow(size*2.,2.);
41
42 for(float i = -size;i <size;i++){
43 for(float j = -size;j <size;j++){
44
45 vec2 newp = p + vec2(i,j) * 0.001 * amp;
46 color += vec3(texture(tex,newp).xyz);
47 }
48 }
49
50 color *= am;
51
52 p += rnd(p.x,p.y)*0.002 * amp;
53
54 color += vec3(texture(tex,p).xyz);
55
56 return color * 0.5;
57
58 }
59
60 void main(){
61
62 float speed = 0.5;
63 float amo = 15.; //Amount of Circles. Does effect the performance quit a bit.
64 float sd = 1.0; //Seed for rnd. Change For diffrent result
65 float Cs = 1.7; //Size of the Circle
66
67
68 vec2 fragCoord = vUv;
69 float iTime = progress*4.;
70
71 vec2 iResolution = vec2(resolution.z, resolution.w);
72
73
74 vec2 p = (fragCoord*2.0-iResolution.xy)/iResolution.y;
75 vec2 q;
76 vec3 col;
77
78
79 float strength = 0.5 * (smoothstep(0.,1.0,4.-iTime));
80
81
82
83 vec3 Col1 = vec3(0.7,0.1,0.1); //Assigns a random Color from these 5.
84 float tol1 = 0.1; //Changes the possible diffrenses for each Cicles Color
85 vec3 Col2 = vec3(0.7,0.1,0.1);
86 float tol2 = 0.1;
87 vec3 Col3 = vec3(0.1,0.5,0.7);
88 float tol3 = 0.1;
89 vec3 Col4 = vec3(0.1,0.5,0.7);
90 float tol4 = 0.1;
91 vec3 Col5 = vec3(0.1,0.5,0.7);
92 float tol5 = 0.1;
93 vec3[] Colors = vec3[] (Col1,Col2,Col3,Col4,Col5);
94 float[] tolerance = float[] (tol1,tol2,tol3,tol4,tol5);
95
96 bool DoBackground = false;//Takes the avg of the Background as the Color
97
98 bool DirNotRandom = true;//Change the Direction of the Circles to:
99
100 vec2 NewDir = vec2(0.,-1.);//This is the new Dir Starting pos is Calculated with it too
101
102 float EFCS = 0.5; //Changes the Effekt size/strength of each cicrle based
103 //on the pixels distanz to the circle center
104
105 vec2 colAmpX = vec2(1.); //Making a Strength gredient dosent Work jet...
106
107 float t = speed * iTime;
108
109 float zoom = 1.0 - sin(smoothstep(0.,3.14159,iTime*.25*3.14159)*3.14159)*zoomStrength;
110
111 //Shaking effekt
112 q.x = rnd(5.,2. + floor(t) * 0.01) * 0.1;
113 q.y = rnd(5.,1. + floor(t) * 0.01) * 0.1;
114
115 vec2 dir = normalize(q);
116
117 p += dir * sin(fract(t) * 3.14159 * 2.) * pow(sin(fract(t)*3.14159+3.14159),1.) * 0.1 * (20.-zoom * 20.);
118 p *= zoom;
119
120 //weaking the Transition effekt with Time
121 float effSt = sin(smoothstep(0.,1.,iTime*0.25 * speed * 2.)*3.14159);
122
123
124
125
126
127
128 //Load image and Bluring it
129 col += blur(src2,(p * iResolution.y + iResolution.xy)*0.5/iResolution.xy,10.,3. * effSt) * smoothstep(0.0,1.0,iTime*0.25);
130 col += blur(src1,(p * iResolution.y + iResolution.xy)*0.5/iResolution.xy,10.,3. * effSt) * smoothstep(1.0,0.0,iTime*0.25);
131
132 //circles
133 vec3 CirclCol = vec3(0.);
134 for(float i = 0.;i<amo;i++){
135 vec2 cq = vec2(rnd(i*5.32*sd,i*1.42*sd),rnd(i*3.32,i*0.42*sd));
136 vec2 Cdir = vec2(rnd(i*0.83*sd,i*0.89*sd),rnd(i*0.51*sd,i*0.82*sd));
137 if(DirNotRandom){cq += NewDir * -1.;Cdir = NewDir *(1.5 + 0.4 * rnd(cq.x*0.83*sd,cq.y*0.89*sd));}
138 int rnd1 = int(floor((0.5 + 0.5 * rnd(cq.x*1.4*sd,cq.y*1.2*sd)) * 5.) );
139 int rnd2 = int(floor((0.5 + 0.5 * rnd(cq.x*1.4*sd,cq.y*1.2*sd)) * 5.) );
140
141 vec3 ChosenCol = Colors[rnd1];
142 float ChosenTol = tolerance[rnd2];
143
144 float C1 = rnd(cq.x*0.841,cq.y*8.459*sd) * ChosenTol + ChosenCol.x;
145 float C2 = rnd(cq.x*4.615,cq.y*2.195*sd) * ChosenTol + ChosenCol.y;
146 float C3 = rnd(cq.x*1.517,cq.y*3.315*sd) * ChosenTol + ChosenCol.z;
147
148
149
150 float Csize = rnd(cq.x*1.517,cq.y*3.315) * .1 + Cs;
151
152 vec3 Rcol = vec3(C1,C2,C3) * .5 * (1. * 12.5/amo);
153
154 if(DoBackground == true){
155
156 Rcol = blur(src2,cq,4.,0.1) * .5;
157
158 }
159
160 float s = 20.-iTime*10.;
161 float StC = smoothstep(s-3.0,s,i);
162
163 cq += Cdir * pow(iTime*0.5,3.0) ;
164 cq.x *= 1.2;
165
166 CirclCol += 1.*Rcol * circle(cq,Csize,p) * sin(smoothstep(0.,1.,iTime*0.5 * speed + 0.25)*3.14159) * StC * effSt;
167 col *= 1.-circle(cq,Csize-0.5,p) * StC * .25;
168 //CirclCol *= 0.5 + smoothstep(0.,Csize-0.75,length(p-cq)) * 0.5; remove
169 // because it created darker holes at earlyer rendered circles.
170
171 }
172
173 col += CirclCol;
174
175 gl_FragColor = vec4(col,1.0);
176 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform int dir;
2 uniform float time;
3 uniform float progress;
4 uniform float width;
5 uniform float scaleX;
6 uniform float scaleY;
7 uniform sampler2D src1;
8 uniform sampler2D src2;
9 uniform sampler2D displacement;
10 uniform vec4 resolution;
11 varying vec2 vUv;
12 varying vec4 vPosition;
13 vec4 permute(vec4 x) {
14 return mod(((x * 34.0) + 1.0) * x, 289.0);
15 }
16 vec4 taylorInvSqrt(vec4 r) {
17 return 1.79284291400159 - 0.85373472095314 * r;
18 }
19 vec4 fade(vec4 t) {
20 return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);
21 }
22 float cnoise(vec4 P) {
23 ;
24 vec4 Pi0 = floor(P);
25 vec4 Pi1 = Pi0 + 1.0;
26 Pi0 = mod(Pi0, 289.0);
27 Pi1 = mod(Pi1, 289.0);
28 vec4 Pf0 = fract(P);
29 vec4 Pf1 = Pf0 - 1.0;
30 vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
31 vec4 iy = vec4(Pi0.yy, Pi1.yy);
32 vec4 iz0 = vec4(Pi0.zzzz);
33 vec4 iz1 = vec4(Pi1.zzzz);
34 vec4 iw0 = vec4(Pi0.wwww);
35 vec4 iw1 = vec4(Pi1.wwww);
36 vec4 ixy = permute(permute(ix) + iy);
37 vec4 ixy0 = permute(ixy + iz0);
38 vec4 ixy1 = permute(ixy + iz1);
39 vec4 ixy00 = permute(ixy0 + iw0);
40 vec4 ixy01 = permute(ixy0 + iw1);
41 vec4 ixy10 = permute(ixy1 + iw0);
42 vec4 ixy11 = permute(ixy1 + iw1);
43 vec4 gx00 = ixy00 / 7.0;
44 vec4 gy00 = floor(gx00) / 7.0;
45 vec4 gz00 = floor(gy00) / 6.0;
46 gx00 = fract(gx00) - 0.5;
47 gy00 = fract(gy00) - 0.5;
48 gz00 = fract(gz00) - 0.5;
49 vec4 gw00 = vec4(0.75) - abs(gx00) - abs(gy00) - abs(gz00);
50 vec4 sw00 = step(gw00, vec4(0.0));
51 gx00 -= sw00 * (step(0.0, gx00) - 0.5);
52 gy00 -= sw00 * (step(0.0, gy00) - 0.5);
53 vec4 gx01 = ixy01 / 7.0;
54 vec4 gy01 = floor(gx01) / 7.0;
55 vec4 gz01 = floor(gy01) / 6.0;
56 gx01 = fract(gx01) - 0.5;
57 gy01 = fract(gy01) - 0.5;
58 gz01 = fract(gz01) - 0.5;
59 vec4 gw01 = vec4(0.75) - abs(gx01) - abs(gy01) - abs(gz01);
60 vec4 sw01 = step(gw01, vec4(0.0));
61 gx01 -= sw01 * (step(0.0, gx01) - 0.5);
62 gy01 -= sw01 * (step(0.0, gy01) - 0.5);
63 vec4 gx10 = ixy10 / 7.0;
64 vec4 gy10 = floor(gx10) / 7.0;
65 vec4 gz10 = floor(gy10) / 6.0;
66 gx10 = fract(gx10) - 0.5;
67 gy10 = fract(gy10) - 0.5;
68 gz10 = fract(gz10) - 0.5;
69 vec4 gw10 = vec4(0.75) - abs(gx10) - abs(gy10) - abs(gz10);
70 vec4 sw10 = step(gw10, vec4(0.0));
71 gx10 -= sw10 * (step(0.0, gx10) - 0.5);
72 gy10 -= sw10 * (step(0.0, gy10) - 0.5);
73 vec4 gx11 = ixy11 / 7.0;
74 vec4 gy11 = floor(gx11) / 7.0;
75 vec4 gz11 = floor(gy11) / 6.0;
76 gx11 = fract(gx11) - 0.5;
77 gy11 = fract(gy11) - 0.5;
78 gz11 = fract(gz11) - 0.5;
79 vec4 gw11 = vec4(0.75) - abs(gx11) - abs(gy11) - abs(gz11);
80 vec4 sw11 = step(gw11, vec4(0.0));
81 gx11 -= sw11 * (step(0.0, gx11) - 0.5);
82 gy11 -= sw11 * (step(0.0, gy11) - 0.5);
83 vec4 g0000 = vec4(gx00.x, gy00.x, gz00.x, gw00.x);
84 vec4 g1000 = vec4(gx00.y, gy00.y, gz00.y, gw00.y);
85 vec4 g0100 = vec4(gx00.z, gy00.z, gz00.z, gw00.z);
86 vec4 g1100 = vec4(gx00.w, gy00.w, gz00.w, gw00.w);
87 vec4 g0010 = vec4(gx10.x, gy10.x, gz10.x, gw10.x);
88 vec4 g1010 = vec4(gx10.y, gy10.y, gz10.y, gw10.y);
89 vec4 g0110 = vec4(gx10.z, gy10.z, gz10.z, gw10.z);
90 vec4 g1110 = vec4(gx10.w, gy10.w, gz10.w, gw10.w);
91 vec4 g0001 = vec4(gx01.x, gy01.x, gz01.x, gw01.x);
92 vec4 g1001 = vec4(gx01.y, gy01.y, gz01.y, gw01.y);
93 vec4 g0101 = vec4(gx01.z, gy01.z, gz01.z, gw01.z);
94 vec4 g1101 = vec4(gx01.w, gy01.w, gz01.w, gw01.w);
95 vec4 g0011 = vec4(gx11.x, gy11.x, gz11.x, gw11.x);
96 vec4 g1011 = vec4(gx11.y, gy11.y, gz11.y, gw11.y);
97 vec4 g0111 = vec4(gx11.z, gy11.z, gz11.z, gw11.z);
98 vec4 g1111 = vec4(gx11.w, gy11.w, gz11.w, gw11.w);
99 vec4 norm00 = taylorInvSqrt(vec4(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));
100 g0000 *= norm00.x;
101 g0100 *= norm00.y;
102 g1000 *= norm00.z;
103 g1100 *= norm00.w;
104 vec4 norm01 = taylorInvSqrt(vec4(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));
105 g0001 *= norm01.x;
106 g0101 *= norm01.y;
107 g1001 *= norm01.z;
108 g1101 *= norm01.w;
109 vec4 norm10 = taylorInvSqrt(vec4(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));
110 g0010 *= norm10.x;
111 g0110 *= norm10.y;
112 g1010 *= norm10.z;
113 g1110 *= norm10.w;
114 vec4 norm11 = taylorInvSqrt(vec4(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));
115 g0011 *= norm11.x;
116 g0111 *= norm11.y;
117 g1011 *= norm11.z;
118 g1111 *= norm11.w;
119 float n0000 = dot(g0000, Pf0);
120 float n1000 = dot(g1000, vec4(Pf1.x, Pf0.yzw));
121 float n0100 = dot(g0100, vec4(Pf0.x, Pf1.y, Pf0.zw));
122 float n1100 = dot(g1100, vec4(Pf1.xy, Pf0.zw));
123 float n0010 = dot(g0010, vec4(Pf0.xy, Pf1.z, Pf0.w));
124 float n1010 = dot(g1010, vec4(Pf1.x, Pf0.y, Pf1.z, Pf0.w));
125 float n0110 = dot(g0110, vec4(Pf0.x, Pf1.yz, Pf0.w));
126 float n1110 = dot(g1110, vec4(Pf1.xyz, Pf0.w));
127 float n0001 = dot(g0001, vec4(Pf0.xyz, Pf1.w));
128 float n1001 = dot(g1001, vec4(Pf1.x, Pf0.yz, Pf1.w));
129 float n0101 = dot(g0101, vec4(Pf0.x, Pf1.y, Pf0.z, Pf1.w));
130 float n1101 = dot(g1101, vec4(Pf1.xy, Pf0.z, Pf1.w));
131 float n0011 = dot(g0011, vec4(Pf0.xy, Pf1.zw));
132 float n1011 = dot(g1011, vec4(Pf1.x, Pf0.y, Pf1.zw));
133 float n0111 = dot(g0111, vec4(Pf0.x, Pf1.yzw));
134 float n1111 = dot(g1111, Pf1);
135 vec4 fade_xyzw = fade(Pf0);
136 vec4 n_0w = mix(vec4(n0000, n1000, n0100, n1100), vec4(n0001, n1001, n0101, n1101), fade_xyzw.w);
137 vec4 n_1w = mix(vec4(n0010, n1010, n0110, n1110), vec4(n0011, n1011, n0111, n1111), fade_xyzw.w);
138 vec4 n_zw = mix(n_0w, n_1w, fade_xyzw.z);
139 vec2 n_yzw = mix(n_zw.xy, n_zw.zw, fade_xyzw.y);
140 float n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);
141 return 2.2 * n_xyzw;
142 }
143 float map(float value, float min1, float max1, float min2, float max2) {
144 return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
145 }
146 float parabola(float x, float k) {
147 return pow(4. * x * (1. - x), k);
148 }
149 void main() {
150 float dt = parabola(progress, 1.);
151 float border = 1.;
152 vec2 newUV = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
153 vec4 color1 = TEXTURE2D(src1, newUV);
154 vec4 color2 = TEXTURE2D(src2, newUV);
155 vec4 d = TEXTURE2D(displacement, vec2(newUV.x * scaleX, newUV.y * scaleY));
156 float realnoise = 0.5 * (cnoise(vec4(newUV.x * scaleX + 0. * progress / 3., newUV.y * scaleY, 0. * progress / 3., 0.)) + 1.);
157 float w = width * dt;
158 float maskvalue = smoothstep(w, 0., 1. - (vUv.x + mix(-w / 2., 1. - w / 2., (1. - progress))));
159 float maskvalue0 = smoothstep(1., 1., vUv.x + progress);
160 if (dir == 1) {
161 maskvalue = smoothstep(1. - w, 1., vUv.x + mix(-w / 2., 1. - w / 2., progress));
162 maskvalue0 = smoothstep(1., 1., vUv.x + progress);
163 }
164 if (dir == 2) {
165 maskvalue = smoothstep(1., 1. - w, vUv.y + mix(-w / 2., 1. - w / 2., progress));
166 maskvalue0 = smoothstep(1., 1., vUv.y + progress);
167 }
168 if (dir == 3) {
169 maskvalue = smoothstep(0., w, 1. - (vUv.y + mix(-w / 2., 1. - w / 2., (1. - progress))));
170 maskvalue0 = smoothstep(1., 1., vUv.y + progress);
171 }
172 float mask = maskvalue + maskvalue * realnoise;
173 float final = smoothstep(border, border + 0.01, mask);
174 gl_FragColor = dir == 0 || dir == 2 ? mix(color2, color1, final) : mix(color1, color2, final);
175 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform vec4 resolution;
2 uniform float intensity;
3 uniform float progress;
4 uniform sampler2D src1;
5 uniform sampler2D src2;
6 varying vec2 vUv;
7 vec4 getFromColor(vec2 uv) {
8 return TEXTURE2D(src1, uv);
9 }
10 vec4 getToColor(vec2 uv) {
11 return TEXTURE2D(src2, uv);
12 }
13 vec2 offset(float progress, float x, float theta) {
14 float phase = progress * progress + progress + theta;
15 float shifty = 0.03 * progress * cos(10.0 * (progress + x));
16 return vec2(0, shifty);
17 }
18 void main() {
19 vec2 p = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
20 gl_FragColor = mix(getFromColor(p + offset(progress, p.x, 0.0)), getToColor(p + offset(1.0 - progress, p.x, 3.14)), progress);
21 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float progress;
2 uniform bool flipx;
3 uniform bool flipy;
4 uniform sampler2D src1;
5 uniform sampler2D src2;
6 uniform sampler2D displacement;
7 uniform int useTexture;
8 uniform float threshold;
9 varying vec2 vUv;
10 void main() {
11 vec4 texel1 = TEXTURE2D(src2, vUv);
12 vec4 texel2 = TEXTURE2D(src1, vUv);
13 vec4 transitionTexel = TEXTURE2D(displacement, vec2(flipx ? 1. - vUv.x : vUv.x, flipy ? 1. - vUv.y : vUv.y));
14 float r = progress * (1.0 + threshold * 2.0) - threshold;
15 float mixf = clamp((transitionTexel.r - r) * (1.0 / threshold), .0, 1.0);
16 gl_FragColor = mix(texel1, texel2, mixf);
17 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float zoom;
2 uniform float prange;
3 uniform float tilt;
4 uniform float left;
5 uniform float top;
6 uniform vec4 resolution;
7 uniform float progress;
8 uniform sampler2D src1;
9 uniform sampler2D src2;
10 uniform sampler2D displacement;
11 varying vec2 vUv;
12 vec2 mirror(vec2 v) {
13 vec2 m = mod(v, 2.0);
14 return mix(m, 2.0 - m, step(1.0, m));
15 }
16 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
17 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
18 }
19 vec2 rotateUV(vec2 uv, float rotation, vec2 mid) {
20 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
21 }
22 void main() {
23 vec2 uv = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
24 float m = progress;
25 m = smoothstep(0., 1., m);
26 vec2 nUv = vec2(.0, .0);
27 if (tilt != 0.) {
28 float tm = map(0.5, 1., 0., 10., m, 0., 10.);
29 float mc = tm > 9.999 ? 0. : (tm < 8.236 ? max(0., sin(tm / 6.)) : sin(tm - 0.58));
30 mc = map(0., 10.005, 0., 3., mc, 0., 10.005);
31 nUv = rotateUV(uv, mc * -radians(360. * tilt), vec2(.5, .5));
32 nUv.x += m * left;
33 nUv.y += m * top;
34 } else {
35 nUv = vec2(uv.x + m * left, uv.y + m * top);
36 }
37 nUv.x -= 0.5;
38 nUv.y -= 0.5;
39 nUv *= 1. + (sin(m * 3.141592653)) * (1. / zoom - 1.);
40 nUv.x += 0.5;
41 nUv.y += 0.5;
42 nUv = mirror(nUv);
43 vec2 nUvIn = nUv;
44 if (mod(left, 2.0) != 0.) nUvIn.x *= -1.;
45 if (mod(top, 2.0) != 0.) nUvIn.y *= -1.;
46 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m, 0., 1.);
47 vec4 col = mix(TEXTURE2D(src1, nUv), TEXTURE2D(src2, nUvIn), nprog);
48 gl_FragColor = col;
49 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float persp;
2 uniform float unzoom;
3 uniform float reflection;
4 uniform float floating;
5 uniform vec4 resolution;
6 uniform float progress;
7 uniform sampler2D src1;
8 uniform sampler2D src2;
9 varying vec2 vUv;
10 vec4 getFromColor(vec2 uv) {
11 return TEXTURE2D(src1, uv);
12 }
13 vec4 getToColor(vec2 uv) {
14 return TEXTURE2D(src2, uv);
15 }
16 vec2 project(vec2 p) {
17 return p * vec2(1.0, -1.2) + vec2(0.0, -floating / 100.);
18 }
19 bool inBounds(vec2 p) {
20 return all(lessThan(vec2(0.0), p)) && all(lessThan(p, vec2(1.0)));
21 }
22 vec4 bgColor(vec2 p, vec2 pfr, vec2 pto) {
23 vec4 c = vec4(0.0, 0.0, 0.0, 1.0);
24 pfr = project(pfr);
25 if (inBounds(pfr)) {
26 c += mix(vec4(0.0), getFromColor(pfr), reflection * mix(1.0, 0.0, pfr.y));
27 }
28 pto = project(pto);
29 if (inBounds(pto)) {
30 c += mix(vec4(0.0), getToColor(pto), reflection * mix(1.0, 0.0, pto.y));
31 }
32 return c;
33 }
34 vec2 xchaos(vec2 p, float persp, float center) {
35 float x = mix(p.x, 1.0 - p.x, center);
36 return ((vec2(x, (p.y - 0.5 * (1.0 - persp) * x) / (1.0 + (persp - 1.0) * x)) - vec2(0.5 - distance(center, 0.5), 0.0)) * vec2(0.5 / distance(center, 0.5) * (center < 0.5 ? 1.0 : -1.0), 1.0) + vec2(center < 0.5 ? 0.0 : 1.0, 0.0));
37 }
38 void main() {
39 vec2 op = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
40 float uz = unzoom * 2.0 * (0.5 - distance(0.5, progress));
41 vec2 p = -uz * 0.5 + (1.0 + uz) * op;
42 vec2 fromP = xchaos((p - vec2(progress, 0.0)) / vec2(1.0 - progress, 1.0), 1.0 - mix(progress, 0.0, persp), 0.0);
43 vec2 toP = xchaos(p / vec2(progress, 1.0), mix(pow(progress, 2.0), 1.0, persp), 1.0);
44 if (inBounds(fromP)) {
45 gl_FragColor = getFromColor(fromP);
46 } else if (inBounds(toP)) {
47 gl_FragColor = getToColor(toP);
48 } else {
49 gl_FragColor = bgColor(op, fromP, toP);
50 }
51 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform vec4 resolution;
2 uniform float intensity;
3 uniform float progress;
4 uniform sampler2D src1;
5 uniform sampler2D src2;
6 varying vec2 vUv;
7 uniform float left;
8 uniform float top;
9 vec2 mirror(vec2 v) {
10 vec2 m = mod(v, 2.0);
11 return mix(m, 2.0 - m, step(1.0, m));
12 }
13 vec4 getFromColor(vec2 uv) {
14 return TEXTURE2D(src1, mirror(uv));
15 }
16 vec4 getToColor(vec2 uv) {
17 return TEXTURE2D(src2, mirror(uv));
18 }
19 void main() {
20 vec2 p = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
21 vec4 ca = getFromColor(p);
22 vec4 cb = getToColor(p);
23 vec2 oa = (((ca.rg + ca.b) * 0.5) * 2.0 - 1.0);
24 vec2 ob = (((cb.rg + cb.b) * 0.5) * 2.0 - 1.0);
25 vec2 oc = mix(oa, ob, 0.5) * intensity;
26 float w0 = progress;
27 float w1 = 1.0 - w0;
28 vec2 uvOut = p;
29 vec2 uvIn = p;
30 if (left != 0.) {
31 uvOut.x = p.x + left * oc.x * w0;
32 uvIn.x = p.x + left * oc.x * w1;
33 }
34 if (top != 0.) {
35 uvOut.y = p.y + top * oc.y * w0;
36 uvIn.y = p.y + top * oc.y * w1;
37 }
38 gl_FragColor = mix(getFromColor(uvOut), getToColor(uvIn), progress);
39 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform int endx;
2 uniform int endy;
3 uniform vec4 resolution;
4 uniform float intensity;
5 uniform float progress;
6 uniform sampler2D src1;
7 uniform sampler2D src2;
8 varying vec2 vUv;
9 vec4 getFromColor(vec2 uv) {
10 return TEXTURE2D(src1, uv);
11 }
12 vec4 getToColor(vec2 uv) {
13 return TEXTURE2D(src2, uv);
14 }
15 float Rand(vec2 v) {
16 return fract(sin(dot(v.xy, vec2(12.9898, 78.233))) * 43758.5453);
17 }
18 vec2 Rotate(vec2 v, float a) {
19 mat2 rm = mat2(cos(a), -sin(a), sin(a), cos(a));
20 return rm * v;
21 }
22 float CosInterpolation(float x) {
23 return -cos(x * 3.14159265358979323) / 2. + .5;
24 }
25 float POW2(float X) {
26 return X * X;
27 }
28 float POW3(float X) {
29 return X * X * X;
30 }
31 void main() {
32 vec2 newUV = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
33 vec2 p = newUV.xy / vec2(1.0).xy - .5;
34 vec2 rp = p;
35 float rpr = (progress * 2. - 1.);
36 float z = -(rpr * rpr * 2.) + 3.;
37 float az = abs(z);
38 rp *= az;
39 rp += mix(vec2(.5, .5), vec2(float(endx) + .5, float(endy) + .5), POW2(CosInterpolation(progress)));
40 vec2 mrp = mod(rp, 1.);
41 vec2 crp = rp;
42 bool onEnd = int(floor(crp.x)) == endx && int(floor(crp.y)) == endy;
43 if (!onEnd) {
44 float ang = float(int(Rand(floor(crp)) * 4.)) * .5 * 3.14159265358979323;
45 mrp = vec2(.5) + Rotate(mrp - vec2(.5), ang);
46 }
47 if (onEnd || Rand(floor(crp)) > .5) {
48 gl_FragColor = getToColor(mrp);
49 } else {
50 gl_FragColor = getFromColor(mrp);
51 }
52 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform int dir;
2 uniform float time;
3 uniform float progress;
4 uniform float width;
5 uniform float scaleX;
6 uniform float scaleY;
7 uniform float transition;
8 uniform float radius;
9 uniform float swipe;
10 uniform float intensity;
11 uniform sampler2D src1;
12 uniform sampler2D src2;
13 uniform sampler2D displacement;
14 uniform vec4 resolution;
15 varying vec2 vUv;
16 varying vec4 vPosition;
17 vec2 mirrored(vec2 v) {
18 vec2 m = mod(v, 2.);
19 return mix(m, 2.0 - m, step(1.0, m));
20 }
21 void main() {
22 vec2 newUV = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
23 vec4 noise = TEXTURE2D(displacement, mirrored(newUV + time * 0.04));
24 float prog = progress * (0.8 + intensity) - (intensity) + noise.g * (intensity);
25 float intpl = dir == 0 ? pow(abs(smoothstep(0., 1., (prog * 2. - vUv.x + 0.5))), 10.) : dir == 1 ? pow(abs(smoothstep(0., 1., (prog * 2. + vUv.x - 0.5))), 10.) : dir == 2 ? pow(abs(smoothstep(0., 1., (prog * 2. + vUv.y - 0.5))), 10.) : pow(abs(smoothstep(0., 1., (prog * 2. - vUv.y + 0.5))), 10.);
26 vec4 t1 = TEXTURE2D(src1, (newUV - 0.5) * (1.0 - intpl) + 0.5);
27 vec4 t2 = TEXTURE2D(src2, (newUV - 0.5) * intpl + 0.5);
28 gl_FragColor = mix(t1, t2, intpl);
29 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float prange;
2 uniform float tilt;
3 uniform float left;
4 uniform float top;
5 uniform float pano;
6 uniform float zoomOut;
7 uniform float progress;
8 uniform vec4 resolution;
9 uniform sampler2D src1;
10 uniform sampler2D src2;
11 varying vec2 vUv;
12 vec2 mirror(vec2 v) {
13 vec2 m = mod(v, 2.0);
14 return mix(m, 2.0 - m, step(1.0, m));
15 }
16 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
17 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
18 }
19 vec2 rotateUV(vec2 uv, float rotation, vec2 mid) {
20 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
21 }
22 void main() {
23 vec2 uv = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
24 vec3 vw = vec3((uv - 0.5), pano);
25 vec3 vwo = vw;
26 float m = progress;
27 float w = m;
28 w = map(0.1, 0.9, 0.0, 1., w, 0., 1.);
29 float mult = (w - 0.5) * 2.;
30 mult = (-(mult * mult) + 1.);
31 m = smoothstep(0., 1., m);
32 vw = normalize(vw) * zoomOut;
33 vw = mix(vwo, vw, mult);
34 uv = 0.5 + (vw.xy);
35 vec2 nUv = vec2(.0, .0);
36 if (tilt != 0.) {
37 float tm = map(0.5, 1., 0., 10., m, 0., 10.);
38 float mc = tm > 9.999 ? 0. : (tm < 8.236 ? max(0., sin(tm / 6.)) : sin(tm - 0.58));
39 mc = map(0., 10.005, 0., 3., mc, 0., 10.005);
40 nUv = rotateUV(uv, mc * -radians(360. * tilt), vec2(.5, .5));
41 nUv.x += m * left;
42 nUv.y += m * top;
43 } else {
44 nUv = vec2(uv.x + m * left, uv.y + m * top);
45 }
46 nUv = mirror(nUv);
47 vec2 nUvIn = nUv;
48 if (mod(left, 2.) != 0.) nUvIn.x *= -1.;
49 if (mod(top, 2.) != 0.) nUvIn.y *= -1.;
50 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m, 0., 1.);
51 vec4 col = mix(TEXTURE2D(src1, nUv), TEXTURE2D(src2, nUvIn), nprog);
52 gl_FragColor = col;
53 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float ox;
2 uniform float oy;
3 uniform float rotation;
4 uniform bool isShort;
5 uniform float intensity;
6 uniform float angle;
7 uniform float prange;
8 uniform float progress;
9 uniform vec4 resolution;
10 uniform sampler2D src1;
11 uniform sampler2D src2;
12 varying vec2 vUv;
13 float pi = 3.141592653;
14 vec2 rotate(vec2 uv, vec2 mid, float rotation) {
15 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
16 }
17 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
18 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
19 }
20 vec2 plane3d(vec2 uv, vec2 center, float xr, float yr) {
21 vec2 rd = vec2(uv.x, 0.);
22 vec2 a1 = vec2(0., -1.);
23 vec2 b1 = rd - a1;
24 vec2 c1 = rotate(vec2(-1., 0.), vec2(center.x, 0.), yr);
25 vec2 d1 = rotate(vec2(1., 0.), vec2(center.x, 0.), yr) - c1;
26 float u = ((c1.y + 1.) * d1.x - c1.x * d1.y) / (d1.x * b1.y - d1.y * b1.x);
27 float sx = u * b1.x;
28 float sy = u * uv.y;
29 rd = vec2(sy, 0.);
30 vec2 b2 = rd - a1;
31 vec2 c2 = rotate(vec2(-1., 0.), vec2(center.y, 0.), xr);
32 vec2 d2 = rotate(vec2(1., 0.), vec2(center.y, 0.), xr) - c2;
33 float v = ((c2.y + 1.) * d2.x - c2.x * d2.y) / (d2.x * b2.y - d2.y * b2.x);
34 return vec2(v * sx, v * b2.x);
35 }
36 vec2 rotatePlane(vec2 uv, vec2 o, float rx, float ry) {
37 uv = uv * 2. - 1.;
38 uv = plane3d(uv, o, rx, ry);
39 uv = (1. + uv) / 2.;
40 return uv;
41 }
42 float map(float a, float b, float c, float d, float v) {
43 return clamp((v - a) * (d - c) / (b - a) + c, 0., 1.);
44 }
45 vec2 mirror(vec2 v) {
46 vec2 m = mod(v, 2.0);
47 return mix(m, 2.0 - m, step(1.0, m));
48 }
49 vec2 zoom(vec2 uv, float p, float z) {
50 float m = sin(pi * pow(p, 1.));
51 if (z != 0.) {
52 uv.x -= 0.5;
53 uv.y -= 0.5;
54 uv *= (z * m + 1.);
55 uv.x += 0.5;
56 uv.y += 0.5;
57 }
58 return uv;
59 }
60 float quarticInOut(float t) {
61 return t < 0.5 ? +8.0 * pow(t, 4.0) : -8.0 * pow(t - 1.0, 4.0) + 1.0;
62 }
63 void main() {
64 vec2 uv = vUv;
65 float aspect = resolution.x / resolution.y;
66 vec2 origin = vec2(ox, oy);
67 float m = progress;
68 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m, 0., 1.);
69 float tr = sin(pi * pow(map(0.0, .7, 0., 1., m), 2.));
70 float rm = map(0., 1., 0., 1., m);
71 rm = quarticInOut(rm);
72 float rx = tr * radians(intensity) * cos(angle);
73 float ry = tr * radians(intensity) * sin(angle);
74 uv = zoom(uv, 1. - rm, .5);
75 vec2 tUv = uv;
76 tUv = rotatePlane(tUv, origin, rx, ry);
77 origin.x *= aspect;
78 tUv.x *= aspect;
79 tUv = rotate(tUv, origin, rm * rotation);
80 tUv.x /= aspect;
81 vec2 tUvIn = tUv;
82 if (isShort) {
83 tUvIn.x -= origin.x / aspect * 2.;
84 tUvIn.y -= origin.y * 2.;
85 }
86 tUvIn = mirror(tUvIn);
87 vec2 nUv = tUv;
88 nUv = mirror(nUv);
89 gl_FragColor = mix(TEXTURE2D(src1, nUv), TEXTURE2D(src2, tUvIn), nprog);
90 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float roz;
2 uniform float ox;
3 uniform float oy;
4 uniform bool isShort;
5 uniform float iny;
6 uniform float Splits;
7 uniform float s;
8 uniform vec4 iColor;
9 uniform bool cnprog;
10 uniform bool useo;
11 uniform float grado;
12 uniform bool cover;
13 uniform bool altDir;
14 uniform float prange;
15 uniform float progress;
16 uniform vec4 resolution;
17 uniform sampler2D src1;
18 uniform sampler2D src2;
19 varying vec2 vUv;
20 float pi = 3.141592653;
21 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
22 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
23 }
24 vec2 rotate2D(vec2 p, float theta) {
25 return p * mat2(cos(theta), -sin(theta), sin(theta), cos(theta));
26 }
27 vec2 mirror(vec2 v) {
28 vec2 m = mod(v, 2.0);
29 return mix(m, 2.0 - m, step(1.0, m));
30 }
31 vec2 rotateUV(vec2 uv, float rotation, vec2 mid) {
32 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
33 }
34 vec4 cutPart(float m, float amount, vec2 uv, float minv, float maxv, float ratio, float i, float ox, float oy, float nprog) {
35 if (cover) {
36 minv = minv * ratio;
37 maxv = maxv * ratio;
38 }
39 float offsmax = (Splits - 1.) / Splits;
40 float offset = (Splits - i - 1.) / Splits;
41 m = map((offsmax - offset) / iny, 1. - offset / iny, 0., 1., m, 0., 1.);
42 float zm = sin(pi * pow(m, 2.));
43 float cm = min(sin(pi * m), 0.3) / 0.3;
44 float mult = sin(m * pi);
45 vec4 c = vec4(0., 0., 0., 0.);
46 if (cnprog) nprog = map((offsmax - offset) / max(iny / 2.5, 1.), 1. - offset / max(iny / 2.5, 1.), 0., 1., m, 0., 1.);
47 float dir = altDir ? sign(mod(i, 2.0) - 0.5) : 1.;
48 ox *= ratio;
49 uv.x *= ratio;
50 uv = rotateUV(uv, (m * amount + -sign(amount) * mult * 1. * (Splits - i) / Splits) * dir, vec2(ox, oy));
51 float d = length(uv - vec2(ox, oy));
52 uv.x /= ratio;
53 uv *= (1. - zm * 1. * i / Splits);
54 vec2 cUv = uv;
55 if (isShort) {
56 cUv.x -= ox / ratio * 2.;
57 cUv.y -= oy * 2.;
58 }
59 cUv = mirror(cUv);
60 uv = mirror(uv);
61 float a = smoothstep(minv, minv + 0.005, d);
62 float b = 1. - smoothstep(maxv, maxv + 0.005, d);
63 if (minv == 0.) a = step(minv, d);
64 if (maxv >= 1. * (cover ? ratio : 1.)) b = step(minv, d);
65 vec4 tex = mix(TEXTURE2D(src1, uv), TEXTURE2D(src2, cUv), nprog);
66 vec4 color = vec4(0.);
67 if (useo || s != 0.) {
68 color = iColor;
69 float sh = 1. - smoothstep(minv, minv + (maxv - minv) * s, d);
70 float ol = grado == 1. || grado == 2. ? 1. : mod(i, 2.);
71 float gol = grado == 1. ? (Splits - i - 1.) / Splits : grado == 2. ? i / Splits : 1.;
72 if (minv <= 0.) sh = 0.;
73 if (useo && ol != 0.) sh = 1.;
74 if (ol * (a * b) != 0. || s != 0.) tex.rgb = mix(tex, color, color.a * sh * gol * cm).rgb;
75 }
76 vec4 f = vec4(0.);
77 return mix(f, tex, a * b);
78 }
79 void main() {
80 float amount = roz * pi;
81 vec2 uv = vUv;
82 float ratio = resolution.x / resolution.y;
83 float m = progress;
84 m = map(0., 0.999, 0., 1., m, 0., 1.);
85 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m, 0., 1.);
86 vec4 color = vec4(0.);
87 for (int i = 0; i < splits; i++) {
88 float min = float(i) / Splits;
89 float max = float(i) / Splits + 1. / Splits;
90 color += cutPart(m, amount, uv, min, max, ratio, float(i), ox, oy, nprog);
91 }
92 gl_FragColor = color;
93 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float left;
2 uniform float top;
3 uniform int dir;
4 uniform float intensity;
5 uniform float origin;
6 uniform bool sh;
7 uniform float shx;
8 uniform float shy;
9 uniform float shr;
10 uniform float shz;
11 uniform float shv;
12 uniform float prange;
13 uniform float progress;
14 uniform vec4 resolution;
15 uniform sampler2D src1;
16 uniform sampler2D src2;
17 varying vec2 vUv;
18 float pi = 3.141592653;
19 float map(float a, float b, float c, float d, float v) {
20 return clamp((v - a) * (d - c) / (b - a) + c, 0., 1.);
21 }
22 vec2 mirror(vec2 v) {
23 vec2 m = mod(v, 2.0);
24 return mix(m, 2.0 - m, step(1.0, m));
25 }
26 vec2 rotateUV(vec2 uv, float rotation, vec2 mid) {
27 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
28 }
29 vec2 getAngle(vec2 p1) {
30 return vec2(.5, .5) * normalize(p1);
31 }
32 float qinticOut(float t, float power) {
33 return 1.0 - pow(1. - t, power);
34 }
35 float elasticOut(float t) {
36 return sin(13.0 * t * pi / shv) * pow(5.5, 3. * (t - 1.0));
37 }
38 vec2 shake(vec2 uv, float p, float shx, float shy, float tilt, float z) {
39 float m = elasticOut(p);
40 float n = (1. - p) * p;
41 if (tilt != 0.) {
42 float tmc = (1. - m) * m * n;
43 uv = rotateUV(uv, tmc * tilt, vec2(.5, .5));
44 }
45 if (z != 0.) {
46 p = p * p;
47 uv.x -= 0.5;
48 uv.y -= 0.5;
49 uv *= (z * p * n + 1.);
50 uv.x += 0.5;
51 uv.y += 0.5;
52 }
53 if (shx != 0. && shy != 0.) {
54 uv.x += m * shx * 2. * n;
55 uv.y -= m * (1. - m) * shy * n;
56 }
57 return uv;
58 }
59 void main() {
60 vec2 uv = vUv;
61 vec2 vw = uv;
62 vec2 vwo = vw;
63 float m = progress;
64 float steps = 1.0 / (max(abs(left), abs(top)) + 2.);
65 float ms = m;
66 if (sh) ms = qinticOut(m, 10.);
67 float flip = (m - 0.5) * 2.;
68 float mult = sin(ms * pi);
69 mult = min(mult, 0.5);
70 if (dir == 1 || dir == 2) mult /= 10.;
71 if (dir == 1) {
72 float shift = origin <= 0.5 ? uv.y - origin : origin - uv.y;
73 float shift2 = origin == 0. || origin == 1. ? 1. : origin;
74 vw.x += sign(left) * mix(shift, shift - 1., ms) * intensity;
75 } else if (dir == 2) {
76 float shift = origin <= 0.5 ? uv.x - origin : origin - uv.x;
77 float shift2 = origin == 0. || origin == 1. ? 1. : origin;
78 vw.y += sign(top) * mix(shift, shift - shift2, ms) * intensity;
79 } else {
80 vec2 d1 = getAngle(vec2(0.5 * top, 0.5 * left));
81 vec2 d2 = getAngle(vec2(0.5 * top, 0.5 * left));
82 float l1 = length(vec2(left > 0. ? 1. - uv.x : uv.x, top > 0. ? 1. - uv.y : uv.y));
83 float l2 = length(vec2(left > 0. ? uv.x : 1. - uv.x, top > 0. ? uv.y : 1. - uv.y));
84 vec2 a = vw + l1 * d1 * flip * (step(top * left, 0.) - 0.5) * intensity;
85 vec2 b = vw + l2 * d2 * flip * (step(top * left, 0.) - 0.5) * intensity;
86 vw = mix(a, b, ms);
87 }
88 uv = mix(vwo, vw, mult);
89 if (sh) uv = shake(uv, 1. - m, shx, shy, shr, shz);
90 vec2 nUv = vec2(uv.x + ms * left, uv.y + ms * top);
91 nUv = mirror(nUv);
92 vec2 nUvIn = nUv;
93 if (mod(left, 2.0) != 0.) nUvIn.x *= -1.;
94 if (mod(top, 2.0) != 0.) nUvIn.y *= -1.;
95 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., ms);
96 vec4 col = mix(TEXTURE2D(src1, nUv), TEXTURE2D(src2, nUvIn), nprog);
97 gl_FragColor = col;
98 }
...\ No newline at end of file ...\ No newline at end of file
1 const int Samples = 32;
2 uniform float ox;
3 uniform float oy;
4 uniform float roz;
5 uniform float xdist;
6 uniform float ydist;
7 uniform float zoom;
8 uniform float intensity;
9 uniform bool isShort;
10 uniform float prange;
11 uniform float progress;
12 uniform vec4 resolution;
13 uniform sampler2D src1;
14 uniform sampler2D src2;
15 varying vec2 vUv;
16 float pi = 3.141592653;
17 vec2 mirror(vec2 v) {
18 vec2 m = mod(v, 2.0);
19 return mix(m, 2.0 - m, step(1.0, m));
20 }
21 vec2 rotate(vec2 uv, vec2 mid, float rotation) {
22 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
23 }
24 float map(float a, float b, float c, float d, float v) {
25 return clamp((v - a) * (d - c) / (b - a) + c, 0., 1.);
26 }
27 vec2 getSample(vec2 temp, vec2 o, float ratio, int i, float intensity) {
28 o.x *= ratio;
29 temp.x *= ratio;
30 temp = rotate(temp, o, float(i) * intensity);
31 temp.x /= ratio;
32 temp = mirror(temp);
33 return temp;
34 }
35 vec2 zoomFunction(vec2 uv, vec2 o, float z, float m) {
36 uv -= o;
37 uv *= 1. + z * m;
38 uv += o;
39 return uv;
40 }
41 void main() {
42 vec2 o = vec2(ox, oy);
43 float Intensity = intensity;
44 vec2 uv = vUv;
45 float ratio = resolution.x / resolution.y;
46 vec2 dir = uv - o;
47 vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
48 float m = progress;
49 m = map(0., 0.999, 0., 1., m);
50 float mult = sin(m * pi);
51 float zm = mult;
52 Intensity *= pow(mult, 2.) * 0.1;
53 o.x *= ratio;
54 uv.x *= ratio;
55 uv = rotate(uv, vec2(o.x, o.y), roz * 1. * pi * m);
56 o.x /= ratio;
57 uv.x /= ratio;
58 if (zoom != 0.) uv = zoomFunction(uv, o, max(zoom, -0.9), zm);
59 vec2 uvIn = uv;
60 vec2 nO = o;
61 if (isShort) {
62 uvIn.x -= o.x * 2.;
63 uvIn.y -= o.y * 2.;
64 nO.x -= o.x * 2.;
65 nO.y -= o.y * 2.;
66 }
67 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m);
68 vec2 bUv = uv;
69 vec2 temp = bUv;
70 vec2 tempIn = uv;
71 for (int i = 0; i < Samples; i += 2) {
72 temp = bUv;
73 temp = getSample(temp, o, ratio, i, -Intensity);
74 tempIn = uvIn;
75 tempIn = getSample(tempIn, nO, ratio, i, -Intensity);
76 color += mix(TEXTURE2D(src1, temp), TEXTURE2D(src2, tempIn), nprog);
77 temp = bUv;
78 temp = getSample(temp, o, ratio, i + 1, -Intensity);
79 tempIn = uvIn;
80 tempIn = getSample(tempIn, nO, ratio, i, -Intensity);
81 color += mix(TEXTURE2D(src1, temp), TEXTURE2D(src2, tempIn), nprog);
82 }
83
84 gl_FragColor = color / float(Samples);
85 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float left;
2 uniform float top;
3 uniform int dir;
4 uniform float intensity;
5 uniform float twistIntensity;
6 uniform float twistSize;
7 uniform float flipTwist;
8 uniform float progress;
9 uniform vec4 resolution;
10 uniform sampler2D src1;
11 uniform sampler2D src2;
12 varying vec2 vUv;
13 float pi = 3.141592653;
14 vec2 mirror(vec2 v) {
15 vec2 m = mod(v, 2.0);
16 return mix(m, 2.0 - m, step(1.0, m));
17 }
18 float map(float a, float b, float c, float d, float v) {
19 return clamp((v - a) * (d - c) / (b - a) + c, 0., 1.);
20 }
21 void main() {
22 float ratio = resolution.x / resolution.y;
23 vec2 uv = vUv;
24 vec2 uvc = uv;
25 vec2 vw = uv;
26 vec2 vwo = vw;
27 float m = progress;
28 float steps = 1.0 / (abs(left + top) + 2.);
29 float ms = map(steps, 1.0 - steps, 0., 1., m);
30 float flip = (m - 0.5) * 2.;
31 float signFlip = -sign(left + top);
32 float mult = sin(m * pi);
33 if (dir == 1) {
34 vw.x = uv.x * 1. / intensity;
35 vw = mix(vwo, vw, mult);
36 uv.x = vw.x + (-flip * signFlip > 0. ? .0 * mult : 1. * mult);
37 if (twistIntensity != 0.) {
38 uv.y += mult * flip * signFlip * twistIntensity / 20. * flipTwist;
39 uv.y += twistIntensity * flip * pow((flip * -signFlip > 0. ? uvc.x : 1. - uvc.x), twistSize) * mult * flipTwist * ratio / 5.;
40 }
41 } else {
42 vw.y = uv.y * 1. / intensity;
43 vw = mix(vwo, vw, mult);
44 uv.y = vw.y + (flip * -signFlip > 0. ? .0 * mult : 1. * mult);
45 if (twistIntensity != 0.) {
46 uv.x += mult * flip * twistIntensity / 20. * flipTwist;
47 uv.x += twistIntensity * flip * pow((flip * -signFlip > 0. ? uvc.y : 1. - uvc.y), twistSize) * mult * flipTwist / ratio / 5.;
48 }
49 }
50 vec2 nUv = vec2(uv.x + ms * left, uv.y + ms * top);
51 nUv = mirror(nUv);
52 vec2 nUvO = nUv;
53 if (mod(left, 2.0) != 0.) nUv.x *= -1.;
54 if (mod(top, 2.0) != 0.) nUv.y *= -1.;
55 gl_FragColor = mix(TEXTURE2D(src1, nUvO), TEXTURE2D(src2, nUv), ms);
56 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float intensity;
2 uniform float progress;
3 uniform sampler2D src1;
4 uniform sampler2D src2;
5 uniform vec4 resolution;
6 varying vec2 vUv;
7 vec3 mod289(vec3 x) {
8 return x - floor(x * (1.0 / 289.0)) * 289.0;
9 }
10 vec4 mod289(vec4 x) {
11 return x - floor(x * (1.0 / 289.0)) * 289.0;
12 }
13 vec4 permute(vec4 x) {
14 return mod289(((x * 34.0) + 1.0) * x);
15 }
16 vec4 taylorInvSqrt(vec4 r) {
17 return 1.79284291400159 - 0.85373472095314 * r;
18 }
19 float snoise(vec3 v) {
20 const vec2 C = vec2(1.0 / 6.0, 1.0 / 3.0);
21 const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
22 vec3 i = floor(v + dot(v, C.yyy));
23 vec3 x0 = v - i + dot(i, C.xxx);
24 vec3 g = step(x0.yzx, x0.xyz);
25 vec3 l = 1.0 - g;
26 vec3 i1 = min(g.xyz, l.zxy);
27 vec3 i2 = max(g.xyz, l.zxy);
28 vec3 x1 = x0 - i1 + C.xxx;
29 vec3 x2 = x0 - i2 + C.yyy;
30 vec3 x3 = x0 - D.yyy;
31 i = mod289(i);
32 vec4 p = permute(permute(permute(i.z + vec4(0.0, i1.z, i2.z, 1.0)) + i.y + vec4(0.0, i1.y, i2.y, 1.0)) + i.x + vec4(0.0, i1.x, i2.x, 1.0));
33 float n_ = 0.142857142857;
34 vec3 ns = n_ * D.wyz - D.xzx;
35 vec4 j = p - 49.0 * floor(p * ns.z * ns.z);
36 vec4 x_ = floor(j * ns.z);
37 vec4 y_ = floor(j - 7.0 * x_);
38 vec4 x = x_ * ns.x + ns.yyyy;
39 vec4 y = y_ * ns.x + ns.yyyy;
40 vec4 h = 1.0 - abs(x) - abs(y);
41 vec4 b0 = vec4(x.xy, y.xy);
42 vec4 b1 = vec4(x.zw, y.zw);
43 vec4 s0 = floor(b0) * 2.0 + 1.0;
44 vec4 s1 = floor(b1) * 2.0 + 1.0;
45 vec4 sh = -step(h, vec4(0.0));
46 vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy;
47 vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww;
48 vec3 p0 = vec3(a0.xy, h.x);
49 vec3 p1 = vec3(a0.zw, h.y);
50 vec3 p2 = vec3(a1.xy, h.z);
51 vec3 p3 = vec3(a1.zw, h.w);
52 vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
53 p0 *= norm.x;
54 p1 *= norm.y;
55 p2 *= norm.z;
56 p3 *= norm.w;
57 vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);
58 m = m * m;
59 return 42.0 * dot(m * m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
60 }
61 vec3 curlNoise(vec3 p) {
62 const float e = 0.1;
63 float n1 = snoise(vec3(p.x, p.y + e, p.z));
64 float n2 = snoise(vec3(p.x, p.y - e, p.z));
65 float n3 = snoise(vec3(p.x, p.y, p.z + e));
66 float n4 = snoise(vec3(p.x, p.y, p.z - e));
67 float n5 = snoise(vec3(p.x + e, p.y, p.z));
68 float n6 = snoise(vec3(p.x - e, p.y, p.z));
69 float x = n2 - n1 - n4 + n3;
70 float y = n4 - n3 - n6 + n5;
71 float z = n6 - n5 - n2 + n1;
72 const float divisor = 1.0 / (2.0 * e);
73 return normalize(vec3(x, y, z) * divisor);
74 }
75 void main() {
76 vec2 nUV = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
77 float f = progress;
78 vec3 curl = curlNoise(vec3(nUV, 1.) * intensity + progress * .5) / 1.;
79 vec4 t0 = TEXTURE2D(src1, vec2(nUV.x, nUV.y + f * (curl.x)));
80 vec4 t1 = TEXTURE2D(src2, vec2(nUV.x, nUV.y + (1. - f) * (curl.x)));
81 nUV.x += curl.x;
82 gl_FragColor = mix(t0, t1, f);
83 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float amplitude;
2 uniform float speed;
3 uniform bool firstIn;
4 uniform vec4 resolution;
5 uniform float intensity;
6 uniform float progress;
7 uniform sampler2D src1;
8 uniform sampler2D src2;
9 varying vec2 vUv;
10 vec4 getFromColor(vec2 uv) {
11 if (firstIn) { return TEXTURE2D(src2, uv); } else { return TEXTURE2D(src1, uv); };
12 }
13 vec4 getToColor(vec2 uv) {
14 return TEXTURE2D(src2, uv);
15 }
16 void main() {
17 vec2 p = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
18 vec2 dir = p - vec2(.5);
19 float dist = length(dir);
20 float ratio = resolution.x / resolution.y;
21 float maxdist = resolution.x > resolution.y ? ratio : 1. / ratio;
22 ratio = maxdist;
23 maxdist *= progress;
24 maxdist = smoothstep(dist, dist * (1.5 * ratio + 1.5 * (1. - progress)), maxdist);
25 if (dist > progress) {
26 gl_FragColor = mix(getFromColor(p), getToColor(p), progress);
27 } else {
28 vec2 offset = dir * sin(dist * amplitude - progress * speed);
29 gl_FragColor = mix(getFromColor(p + offset), getToColor(p), progress);
30 }
31 gl_FragColor = mix(getFromColor(p), gl_FragColor, maxdist);
32 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float time;
2 uniform float progress;
3 uniform float width;
4 uniform float scaleX;
5 uniform float scaleY;
6 uniform float transition;
7 uniform float radius;
8 uniform float swipe;
9 uniform sampler2D src1;
10 uniform sampler2D src2;
11 uniform sampler2D displacement;
12 uniform vec4 resolution;
13 varying vec2 vUv;
14 varying vec4 vPosition;
15 float parabola(float x, float k) {
16 return pow(4. * x * (1. - x), k);
17 }
18 void main() {
19 vec2 newUV = (vUv - vec2(0.5)) * resolution.zw + vec2(0.5);
20 vec2 p = newUV;
21 vec2 start = vec2(0.5, 0.5);
22 vec2 aspect = resolution.wz;
23 vec2 uv = newUV;
24 float dt = parabola(progress, 1.);
25 vec4 noise = TEXTURE2D(displacement, fract(vUv + progress * 0.04));
26 float prog = progress * 0.66 + noise.g * 0.04;
27 float circ = 1. - smoothstep(-width, 0.0, radius * distance(start * aspect, uv * aspect) - prog * (1. + width));
28 float intpl = pow(abs(circ), 1.);
29 vec4 t1 = TEXTURE2D(src1, (uv - 0.5) * (1.0 - intpl) + 0.5);
30 vec4 t2 = TEXTURE2D(src2, (uv - 0.5) * intpl + 0.5);
31 gl_FragColor = mix(t1, t2, intpl);
32 }
...\ No newline at end of file ...\ No newline at end of file
1 const int Samples = 32;
2 float warp = 2.;
3 float mapPow = .5;
4 const float power = 9.0;
5 uniform float ox;
6 uniform float oy;
7 uniform float zIn;
8 uniform float zOut;
9 uniform float warpIn;
10 uniform float warpOut;
11 uniform float blur;
12 uniform float roz;
13 uniform float rEnd;
14 uniform bool isShort;
15 uniform float prange;
16 uniform float progress;
17 uniform vec4 resolution;
18 uniform sampler2D src1;
19 uniform sampler2D src2;
20 varying vec2 vUv;
21 float pi = 3.141592653;
22 vec2 mirror(vec2 v) {
23 vec2 m = mod(v, 2.0);
24 return mix(m, 2.0 - m, step(1.0, m));
25 }
26 float map(float a, float b, float c, float d, float v, float cmin, float cmax) {
27 return clamp((v - a) * (d - c) / (b - a) + c, cmin, cmax);
28 }
29 float map(float a, float b, float c, float d, float v) {
30 return (v - a) * (d - c) / (b - a) + c;
31 }
32 float powerOut(float t) {
33 return 1.0 - pow(1.0 - t, power);
34 }
35 float mapToEase(float a, float b, float v, float z) {
36 return powerOut(map(a, b, 0., 1., v)) / (warp);
37 }
38 vec4 rayBlur(vec2 uv, vec2 uvo, vec2 o, float m, float nprog) {
39 vec2 dirOut = mix(uvo, uv, step(zOut, 0.)) - o;
40 vec2 dirIn = mix(uv, uvo, step(zIn, 0.)) - o;
41 float bm = sin(pi * m);
42 float Blur = blur != 0. ? blur * bm * max(zOut, -.9) : 0.;
43 float iBlur = blur != 0. ? blur * bm * max(zIn, -.9) : 0.;
44 if (isShort) {
45 uvo.x -= o.x * 2.;
46 uvo.y -= o.y * 2.;
47 }
48 vec4 color = vec4(0.);
49 for (int i = 0; i < Samples; i += 2) {
50 color += mix(TEXTURE2D(src1, mirror(uv + float(i) / float(Samples) * dirOut * Blur)), TEXTURE2D(src2, mirror(uvo + float(i) / float(Samples) * dirIn * iBlur)), nprog);
51 color += mix(TEXTURE2D(src1, mirror(uv + float(i + 1) / float(Samples) * dirOut * Blur)), TEXTURE2D(src2, mirror(uvo + float(i + 1) / float(Samples) * dirIn * iBlur)), nprog);
52 }
53 return color / float(Samples);
54 }
55 vec2 hitEffect(vec2 uv, vec2 o, float m, sampler2D t, float z, bool animOut) {
56 z = max(z, -0.9);
57 m = 1. - sin(pi * m);
58 float dist = distance(o, uv);
59 float angle = atan(uv.y - o.y, uv.x - o.x);
60 vec2 uvo = uv;
61 dist = mix(mapToEase(0., pow(animOut ? warpOut : warpIn, mapPow), dist, z), dist, m);
62 uv.x = o.x + cos(angle) * dist;
63 uv.y = o.y + sin(angle) * dist;
64 uv = mix(uv, uvo, m);
65 return uv;
66 }
67 vec2 zoom(vec2 uv, vec2 o, float z, float m) {
68 uv -= o;
69 uv *= 1. + z * m;
70 uv += o;
71 return uv;
72 }
73 vec2 rotate(vec2 uv, vec2 mid, float rotation) {
74 return vec2(cos(rotation) * (uv.x - mid.x) + sin(rotation) * (uv.y - mid.y) + mid.x, cos(rotation) * (uv.y - mid.y) - sin(rotation) * (uv.x - mid.x) + mid.y);
75 }
76 void main() {
77 vec2 o = vec2(ox, oy);
78 vec2 uv = vUv;
79 float ratio = resolution.x / resolution.y;
80 float m = progress;
81 float nprog = map((0.5 - prange), (0.5 + prange), 0., 1., m, 0., 1.);
82 float rm = map(0., rEnd, 0., 1., m, 0., 1.);
83 o.x *= ratio;
84 uv.x *= ratio;
85 uv = rotate(uv, o, roz * pi * rm);
86 uv.x /= ratio;
87 o.x /= ratio;
88 vec2 uvo = uv;
89 vec2 uvz = uv;
90 if (warpOut != 0.) uv = hitEffect(uv, o, 1. - m, src1, zOut, true);
91 if (warpIn != 0.) uvo = hitEffect(uvo, o, m, src2, zIn, false);
92 if (zOut != 0.) uv = zoom(uv, o, max(zOut, -0.9), m);
93 if (zIn != 0.) uvo = zoom(uvo, o, max(zIn, -0.9), 1. - m);
94 gl_FragColor = rayBlur(uv, uvo, o, m, nprog);
95 }
...\ No newline at end of file ...\ No newline at end of file
1 uniform float intensity;
2 uniform float progress;
3 uniform sampler2D src1;
4 uniform sampler2D src2;
5 varying vec2 vUv;
6 uniform vec4 resolution;
7 const float PI = 3.141592653589793;
8 float Linear_ease(in float begin, in float change, in float duration, in float time) {
9 return change * time / duration + begin;
10 }
11 float Exponential_easeInOut(in float begin, in float change, in float duration, in float time) {
12 if (time == 0.0) return begin;
13 else if (time == duration) return begin + change;
14 time = time / (duration / 2.0);
15 if (time < 1.0) return change / 2.0 * pow(2.0, 10.0 * (time - 1.0)) + begin;
16 return change / 2.0 * (-pow(2.0, -10.0 * (time - 1.0)) + 2.0) + begin;
17 }
18 float Sinusoidal_easeInOut(in float begin, in float change, in float duration, in float time) {
19 return -change / 2.0 * (cos(PI * time / duration) - 1.0) + begin;
20 }
21 float random(in vec3 scale, in float seed) {
22 return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);
23 }
24 vec4 crossFade(in vec2 uv, in float dissolve) {
25 return mix(TEXTURE2D(src1, uv), TEXTURE2D(src2, uv), dissolve);
26 }
27 void main() {
28 vec2 texCoord = vUv / resolution.zw;
29 vec2 center = vec2(Linear_ease(0.5, 0.0, 1.0, progress), 0.5);
30 float dissolve = Exponential_easeInOut(0.0, 1.0, 1.0, progress);
31 float intensity = Sinusoidal_easeInOut(0.0, intensity, 0.5, progress);
32 vec4 color = vec4(0.0);
33 float total = 0.0;
34 vec2 toCenter = center - texCoord;
35 float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0) * 0.5;
36 for (float t = 0.0; t <= 20.0; t++) {
37 float percent = (t + offset) / 20.0;
38 float weight = 1.0 * (percent - percent * percent);
39 color += crossFade(texCoord + toCenter * percent * intensity, dissolve) * weight;
40 total += weight;
41 }
42 gl_FragColor = color / total;
43 }
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
5 <style type="text/css">
6 .st0{fill:url(#SVGID_1_);}
7 </style>
8 <g>
9 <radialGradient id="SVGID_1_" cx="256" cy="256" r="256" gradientUnits="userSpaceOnUse">
10 <stop offset="0" style="stop-color:#FFFFFF"/>
11 <stop offset="1" style="stop-color:#000000"/>
12 </radialGradient>
13 <rect class="st0" width="512" height="512"/>
14 </g>
15 </svg>
1 <div class="slider-revolution-update-list">
2 <h3 class="version-number">Version 6.7.5 (19th August 2024)</h3>
3 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
4 <ul>
5 <li>Missing Content in some cases due too many active WebGL contexts</li>
6 </ul>
7 <h3 class="version-number">Version 6.7.4 (9th August 2024)</h3>
8 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
9 <ul>
10 <li>Water drop transition barely visible on first slide in</li>
11 </ul>
12 <h3 class="version-number">Version 6.7.3 (6th May 2024)</h3>
13 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
14 <ul>
15 <li>First transition shows in some cases a dark sourrounding shadow</li>
16 </ul>
17 <h3 class="version-number">Version 6.7.2 (19th April 2024)</h3>
18 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
19 <ul>
20 <li>Fixed HTML export for V7 engine</li>
21 </ul>
22 <h3 class="version-number">Version 6.7.1 (16th April 2024)</h3>
23 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
24 <ul>
25 <li>Fixed resource loading in REST mode</li>
26 </ul>
27 <h3 class="version-number">Version 6.7.0 (1st April 2024)</h3>
28 <div class="newfeature">Introducing Velocity Engine</div>
29 <ul>
30 <li>Upgraded to SR7 "Velocity" Engine for improved efficiency and animation fluidity. Legacy SR6 Engine included for continued support.</li>
31 <li>Send SR version on plugin update request</li>
32 </ul>
33 <h3 class="version-number">Version 1.0.6 (23rd February 2023)</h3>
34 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
35 <ul>
36 <li>Fixed fade not written in frontend if only fade is selected</li>
37 </ul>
38 <h3 class="version-number">Version 1.0.5 (23rd December 2022)</h3>
39 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
40 <ul>
41 <li>Fixed HTML export bug where the js path would not be properly translated</li>
42 </ul>
43 <h3 class="version-number">Version 1.0.4 (14th July 2022)</h3>
44 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
45 <ul>
46 <li>Added JS files to HTML export option</li>
47 </ul>
48 <h3 class="version-number">Version 1.0.3 (23th December 2021)</h3>
49 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
50 <ul>
51 <li>Outgoing slide shows for split second if BG image is not opaque</li>
52 </ul>
53 <h3 class="version-number">Version 1.0.2 (1st Oct 2021)</h3>
54 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
55 <ul>
56 <li>Changing shake effect value does not change effect</li>
57 <li>Zoom over effect has black BG flash on first slide</li>
58 <li>Transition with panzoom BG jumps on slide change</li>
59 </ul>
60 <h3 class="version-number">Version 1.0.1 (9th August 2021)</h3>
61 <div class="change"><strong style="font-weight:700">CHANGES</strong></div>
62 <ul>
63 <li>Added new presets for spin and zoom effects</li>
64 </ul>
65 <div class="change"><strong style="font-weight:700">BUGFIXES</strong></div>
66 <ul>
67 <li>Spin effect with even spins does not render blur correctly</li>
68 <li>Chaos effect doesn't support intensity</li>
69 <li>Chaos effect texture is flipped after animation</li>
70 </ul>
71 </div>
1 <?php
2 /*
3 Plugin Name: Slider Revolution Transitionpack Add-On
4 Plugin URI: http://www.themepunch.com/
5 Description: Create beautiful WebGL Transitions in Slider Revolution
6 Author: ThemePunch
7 Version: 6.7.5
8 Author URI: http://themepunch.com
9 */
10
11 // If this file is called directly, abort.
12 if(!defined('WPINC')) die;
13
14 define('RS_TRANSITIONPACK_PLUGIN_PATH', plugin_dir_path(__FILE__));
15 define('RS_TRANSITIONPACK_PLUGIN_URL', str_replace('index.php', '', plugins_url( 'index.php', __FILE__)));
16
17 require_once(RS_TRANSITIONPACK_PLUGIN_PATH . 'includes/base.class.php');
18
19 /**
20 * handle everyting by calling the following function *
21 **/
22 function rs_transitionpack_init(){
23
24 new RsTransitionpackBase();
25
26 }
27
28 /**
29 * call all needed functions on plugins loaded *
30 **/
31 add_action('plugins_loaded', 'rs_transitionpack_init');
32 register_activation_hook( __FILE__, 'rs_transitionpack_init');
33
34 //build js global var for activation
35 add_filter( 'revslider_activate_addon', array('RsAddOnTransitionpackBase','get_data'),10,2);
36
37 // get help definitions on-demand. merges AddOn definitions with core revslider definitions
38 add_filter( 'revslider_help_directory', array('RsAddOnTransitionpackBase','get_help'),10,1);
39
40 ?>
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * @author ThemePunch <info@themepunch.com>
3 * @link http://www.themepunch.com/
4 * @copyright 2021 ThemePunch
5 */
6
7 .tp-transitionpack svg a,
8 .tp-transitionpack svg d,
9 .tp-transitionpack svg g,
10 .tp-transitionpack svg polygon,
11 .tp-transitionpack svg rect,
12 .tp-transitionpack svg line
13 .tp-transitionpack svg text,
14 .tp-transitionpack svg circle,
15 .tp-transitionpack svg path
16 {
17 transition: none;
18
19 }
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
1 <?php
2 //Silence is golden
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.