{"id":15047722,"url":"https://github.com/analogfeelings/shadersave","last_synced_at":"2025-06-18T16:34:55.844Z","repository":{"id":246445530,"uuid":"821152000","full_name":"AnalogFeelings/Shadersave","owner":"AnalogFeelings","description":"A screensaver for Windows that can run Shadertoy shaders locally with little to no modification.","archived":false,"fork":false,"pushed_at":"2025-06-04T23:48:21.000Z","size":620,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-05T03:03:16.307Z","etag":null,"topics":["agplv3","cpp","cpp20","customization","glsl","glsl-shaders","open-source","ricing","screensaver","screensavers","shaders","shadertoy","shadertoy-compatibility"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnalogFeelings.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-27T23:31:52.000Z","updated_at":"2025-06-04T23:48:23.000Z","dependencies_parsed_at":"2024-12-05T18:20:35.896Z","dependency_job_id":"c8bacb6a-a0da-4f4d-94ea-d67c546f6e27","html_url":"https://github.com/AnalogFeelings/Shadersave","commit_stats":null,"previous_names":["analogfeelings/shadersave"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/AnalogFeelings/Shadersave","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalogFeelings%2FShadersave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalogFeelings%2FShadersave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalogFeelings%2FShadersave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalogFeelings%2FShadersave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnalogFeelings","download_url":"https://codeload.github.com/AnalogFeelings/Shadersave/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalogFeelings%2FShadersave/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260589837,"owners_count":23032957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agplv3","cpp","cpp20","customization","glsl","glsl-shaders","open-source","ricing","screensaver","screensavers","shaders","shadertoy","shadertoy-compatibility"],"created_at":"2024-09-24T21:03:31.808Z","updated_at":"2025-06-18T16:34:50.781Z","avatar_url":"https://github.com/AnalogFeelings.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :rainbow: Shadersave\n[![GitHub issues](https://img.shields.io/github/issues/analogfeelings/shadersave?style=flat-square\u0026logo=github\u0026label=Issues)](https://github.com/AnalogFeelings/shadersave/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/analogfeelings/shadersave?label=Pull%20Requests\u0026style=flat-square\u0026logo=github)](https://github.com/AnalogFeelings/shadersave/pulls)\n[![GitHub](https://img.shields.io/github/license/analogfeelings/shadersave?label=License\u0026style=flat-square\u0026logo=opensourceinitiative\u0026logoColor=white)](https://github.com/AnalogFeelings/shadersave/blob/master/LICENSE.txt)\n[![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/analogfeelings/shadersave/master?label=Commit%20Activity\u0026style=flat-square\u0026logo=github)](https://github.com/AnalogFeelings/shadersave/graphs/commit-activity)\n[![GitHub Repo stars](https://img.shields.io/github/stars/analogfeelings/shadersave?label=Stargazers\u0026style=flat-square\u0026logo=github)](https://github.com/AnalogFeelings/shadersave/stargazers)\n[![Mastodon Follow](https://img.shields.io/mastodon/follow/109309123442839534?domain=https%3A%2F%2Ftech.lgbt%2F\u0026style=flat-square\u0026logo=mastodon\u0026logoColor=white\u0026label=Follow%20Me!\u0026color=6364ff)](https://tech.lgbt/@analog_feelings)\n\nShadersave is a Windows screensaver that can run Shadertoy shaders locally under OpenGL 4.3 core, without using web technologies.\n\nThis is done by replicating the uniforms shadertoy provides to shaders, and wrapping each shader in a valid GLSL shader.  \nYou can find more information by reading the source code at [Shader.cpp](https://github.com/AnalogFeelings/Shadersave/blob/master/src/Classes/Shader.cpp).\n\n# :warning: Limitations\n\n- Audio and VR shaders will not be supported.\n- Mouse and/or keyboard input wont be supported for obvious reasons.\n- Non-image and non-buffer channel inputs won't be supported.\n- Cubemap shaders will not be supported.\n\n# :package: Installing\n\nDue to a Windows design flaw, you must place screensavers in **C:\\Windows\\System32** for them to be recognized by the control panel\napplet.\n\nIf you don't trust this project to be safe to place in system32, you can read through the code and build it yourself.  \nThe program won't even have permissions to modify files in system32 unless it runs as admin.\n\n\u003e [!WARNING]\n\u003e Some shaders make heavy use of your system's GPU and thus can increase power usage significantly.  \n\u003e Please take your power bill into consideration.\n\n# :hammer_and_wrench: Building\n\nTo build this, you will need the following:\n- Visual Studio 2022.\n- The **Desktop development with C++** workload.\n- The **Windows SDK**.\n\nYou must also place [GLEW](https://glew.sourceforge.net/) and [stb_image](https://github.com/nothings/stb/blob/master/stb_image.h) under the **\"lib\"** folder.\n\n# :beetle: Debugging\n\nDebugging screensavers is kind of a hassle, but it can be done.\n\n1. Open a Win32 window, for example Control Panel.\n2. Grab its window handle with Spy++ or some other software.\n3. Convert the handle from hexadecimal to decimal.\n4. Go into **Shadersave -\u003e Properties -\u003e Debugging**.\n5. On **Command Arguments**, write **/p (window handle)** and hit **Apply**.\n6. You can now debug the screensaver as long as you don't close the window you opened.\n\n\u003e [!TIP]\n\u003e **Renderdoc** can be used this way as well, if you want to debug the graphics side.\n\nTo debug the configuration dialog, do the following:\n\n1. Do steps 1 to 4 from above.\n2. On **Command Arguments**, write **/c:(window handle)** and hit **Apply**.\n3. You can now debug the config dialog.\n\n# :camera: Screenshots\n\n[*pow(The Shining, 2.0)*](https://www.shadertoy.com/view/tlyfDV) by **dean_the_coder**  \n![shining](screenshots/shining.png)\n\n[*isovalues 3*](https://www.shadertoy.com/view/ldfczS) by **FabriceNeyret2**  \n![isovalues](screenshots/isovalues.png)\n\n[*Cook-Torrance*](https://www.shadertoy.com/view/XsXXDB) by **xbe**  \n![torrance](screenshots/raytracer.png)\n\n[*Splitting DNA*](https://www.shadertoy.com/view/4d2cWd) by **BigWIngs**  \n![dna](screenshots/dna.png)\n\n# :sparkles: Major Contributors\n\n- :floppy_disk: **Analog Feelings** - Creator of Shadersave, implemented almost all of the codebase.\n- :dog: **Pdawg-bytes** - Implemented the framerate limiter.\n\n# :balance_scale: License\nShadersave is licensed under the [GNU Affero General Public License v3](LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanalogfeelings%2Fshadersave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanalogfeelings%2Fshadersave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanalogfeelings%2Fshadersave/lists"}