Skip to content

Commit

Permalink
Update to base repository (#1)
Browse files Browse the repository at this point in the history
* Cross platform update

* Minor CMake changes

* Use inotify for file watcing on linux

* Fix for dfranx#5

* Fix GLSL shaders + fix for a bug that occurs when using multiple textures

* Add steps for Windows in the README

* Add FindGLM.cmake

* Variable pointers

* Small fix for variable pointers

* Shader macros

* fix sdl linking on Linux

* Update CHANGELOG

* Fix for dfranx#13

* Add FrameIndex system variable dfranx#14

* Add option that disables RT clear dfranx#15

* UIHelper -> include clocale

* Shader variable flags dfranx#12

* Fix CopyState() crash

* Fix last frame flag for GeometryTransform dfranx#12

* Disable last frame for IsPicked + change var manager default size

* Icons

* Add format property to render textures dfranx#17

* Add toolbar

* Add elapsed time to status bar + make the toolbar buttons work

* Pause and increase time

* Fix float4/int4/bool4 variables

* Add Mouse and MouseButton system variables

* Zoom in/out functionality

* Zoom controls

* Fix RT filtering and model rendering

* Fix a bug where SHADERed would crash with multiple 3D models dfranx#18

* Replace glm::identity<glm::mat4>() with glm::mat4(1) dfranx#6

* Add option to reset time

* Fix zoom area dragging & limit zoom selection bounds

* Add CTRL+ALT+MWheel to zoom in/out

* Add FindSFML.cmake

* Add USE_FINDSFML variable

* Add cubemap preview

* Fix picking when zoomed in

* Improve gizmo, bounding box & zoom area performance

* Add option to modify system variables when rendering to an image

* macOS changes

* Object preview window

* Fix CMakeLists.txt

* Add proper cubemap and audio preview to the object preview window

* Add buffers

* Add instancing

* Add ability to use buffers as inputs for instanced objects

* Fix 3D model instancing

* Make it compilable on windows

* Add auto check for updates on startup

* Add buffer to toolbar & minor improvements to UpdateChecker

* Update TextEditor dfranx#19

* Add show whitespace option

* Update external libraries

* Add auto recompile option - compile changed shaders every 200ms

* Add option to disable window's alpha channel

* Add ScreenQuadNDC

* Add the ability to set CodeUI.Save and Project.Save to same shortcut

* Add option to stream logs to file

* Bump version

* Fix loading files from different drives on Windows dfranx#18

* Add ImageObject

* Add compute shaders

* Compute shader examples + fixes

* Minor changes

* Update README.md & TUTORIAL.md

* Fix README gif

* Remove some gifs

* Fix crash on RWTexture2D

* Fix crash on HLSL function calls with no arguments (update glslang)

* Fix various transcompiler crashes

* Various TextEditor fixes (check CHANGELOG) - update ImGuiColorTextEdit submodule

* Fix a bug that occurs when fetching texel data from a texture without a sampler

* Write item type in the properties

* Use different color to write shader pass with an error in the PipelineUI

* Disable various path textboxes

* Prevent pause button from overlapping

* Update TextEditor, add hlsl compute example, bump version

* Add Vulkan GLSL support dfranx#21

* Minor fixes

* Add input layout (dfranx#25)

* Exporting/importing shader pass input layout

* Add input layout manager

* Fix tangents and bitangents

* Add option to export a sequence of images dfranx#23

* Improve performance mode dfranx#24

* Various fixes & changes

* Add CameraPosition3 and CameraDirection3 variables

* Add drag & drop

* Add 'Are you sure?' message box

* Multiple bug fixes

* Rework ImageObject & fix ScreenQuadNDC rendering

* Add resource manager

* Add CTRL+F/search box in the text editor

* Fix for dfranx#27

* Fix a bug where SHADERed would recompile file two times after clicking Compile button

* Add ability to change variable type after variable has been created

* Add a window where all system variables are listed

* Add magnifier tool to object preview window

* Make it so that any form of project save also saves all shader code modifications

* Shader code modifications now also count as project modifications

* Minor changes

* Add context menu and replace feature in the text editor & fix copy and paste functionalities

* Some internal changes to the magnifier tool in ObjectPreviewUI

* Detect if some Editor shortcuts are missing

* Remove all the maps from ObjectManager

* Fix for gcc

* Fixes

* Add support for HLSL types in the buffer format

* Recompile shader pass after we change it's shader path

* Add ability to change warning, message and error text colors in the theme files

* CodeEditorUI now holds pointers to PipelineItems

* Close code editors after a shader pass has been deleted

* Add feature that automatically creates variables when creating a shader pass

* Add Editor.FindNext & improve text editor find feature

* Add 3D textures

* Add Project -> Options

* Fix 3D textures

* Fix texture loading

* Add various checks to prevent crashes

* Add multi-camera system (+ ShadowMapping example) & fix matrix variable export/import

* Update readme

* Add audio shaders (+ audioshader example)

* Update libraries

* Update TODO.md

* Fix a bug where openning Sobel -> Edge -> Sobel examples would break the rendered

* Fix a crash on openning 'cubemap' example

* Update README.md & settings.ini

* Improve image sequence export speed & add ability to use sprintf format specifiers in filename (dfranx#23)

* Add Fedora Dependencies

* Scroll to the selection & fix FindNext highlighting

* Update TODO.md

* Fix Editor.Find and Editor.Replace shortcuts

* Fix HOME/END shortcuts

* Fix gizmo interaction when preview is zoomed in

* Add drag & drop to PipelineUI

* Bump version

* Add ability to deactivate certain shader pass

* Pausing preview now also pauses compute shaders

* Improve TextEditor shortcuts

* Revert

* Update TODO.md & CHANGELOG.txt

* Fix a bug where TextEditor would lose focus on ALT key press

* Plugin API base

* Fixed missed return ArcBallCamera '=' operator

* Fixed missed return value for '=' operator

* Memory leak fix

```
		if (m_item.Data != nullptr)
			delete m_item.Data;
```
m_item.Data:
https://github.com/dfranx/SHADERed/blob/24ba95faebfde61581a08792b82f5ad2cb13d69f/Objects/PipelineItem.h#L45

it leads to mem leak as 'delete' operator can't delete 'void*' proper. (not type information -> not size data, and no information about destructor, ... )
https://github.com/dfranx/SHADERed/blob/24ba95faebfde61581a08792b82f5ad2cb13d69f/Objects/PipelineItem.h#L45
i.e. destructors of internal fields (ex https://github.com/dfranx/SHADERed/blob/24ba95faebfde61581a08792b82f5ad2cb13d69f/Objects/PipelineItem.h#L78)  won't be executed.

* Mem-leak fix

Base class should have a virtual destructor otherwise delete (UIView*) ... won't be able to call derived destructor (even a default one).

* Add support for #include

* Update TODO.md & minor changes to KeyboardShortcuts (dfranx#35)

* Fix #include's for HLSL

* Fix message line numbers when using #include in GLSL shaders

* Add 'Recursive #include detected' message

* Update default theme & font (dfranx#9)

* Add an option to save supersampled screenshots (dfranx#34)

* Update imgui

* Add search in Options -> Shortcuts

* Bump version

* Add ability to load projects by drag and dropping them

* Toolbar item for openning projects should now also show 'Are you sure?' message box

* Somewhat fix autocomplete and find window background colors

* Update and expand the API

* Hide object view window in performance mode

* Add MSAA (dfranx#36)

* Change how MouseButton works

* Fix a bug where user could select same RT multiple times for the same pass

* Fix camera rotation loading from project file

* Add ability to add custom system variable types

* Check if user doesn't have required plugins for a project

* Add ability to disable certain plugins

* Consistency between auto-recompile and normal recompile when using #include

* Add ability to add custom functions

* Add ability to install SHADERed binaries (dfranx#33)

* make install -> lowercase (dfranx#33)

* Compiles on linux

* Plugins can now add custom ObjectManager items

* Add PipelineItem::PluginItem

* Fixes, improvements & add various plugin functions

* Add GetPluginVersion() & fix bugs

* More fixes

* Update shortcuts.kb

* Add ShowContextItems(pluginitem_add, item_type)

* Add GetDPI, Log, FileExists, ClearMessageGroup to plugin API

* Add GetObjectCount, GetObjectName, IsTexture, GetTexture, GetTextureSize plugin functions + fix pipelineitem_add

* Add XDG desktop and AppData files for Linux integration

This also installs those files in CMake to expose SHADERed
to the application launcher once installed.

* Add BeginRender and EndRender to PluginAPI

* Prevent SHADERed from crashing when plugins directory doesn't exist (dfranx#38)

* Cache PluginItems in RenderEngine

* Add BindDefaultStateFn

* Add ability to check for changes in plugin's custom files

* Plugin API can now access CodeEditorUI features

* Auto recompile now works with plugin items

* Plugin API changes

* Prevent crashes when one of the directories (themes, templates, data) doesn't exist

* Create data directory if it doesn't exist

* Update plugin API

Co-authored-by: Franx <[email protected]>
Co-authored-by: CuriousTommy <[email protected]>
Co-authored-by: Denis <[email protected]>
Co-authored-by: Hugo Locurcio <[email protected]>
  • Loading branch information
5 people committed Dec 21, 2019
1 parent a3512c3 commit a9d66af
Show file tree
Hide file tree
Showing 409 changed files with 72,867 additions and 339,980 deletions.
25 changes: 23 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
Debug*
install_manifest.txt
Release*
*.vcxproj.*
MoonLight.dll
.vs
.vscode
vNext.txt
examples/GLSLtest
examples/test
examples/test
CMakeFiles
libs/**/Makefile
libs/**/*.a
libs/**/*.cmake
libs/**/bin
libs/**/*.tcl
cmake_install.cmake
CMakeCache.txt
bin/SHADERed
bin/SHADERed.exe
bin/log.txt
bin/*.dll
bin/*.ilk
bin/*.pdb
bin/plugins/*
VSProject
vsproject32
test
CMakeCache.txt
Makefile
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@
path = libs/imgui
url = https://github.com/dfranx/imgui.git
branch = docking
[submodule "libs/glslang"]
path = libs/glslang
url = https://github.com/KhronosGroup/glslang
ignore = dirty
196 changes: 195 additions & 1 deletion CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,199 @@
[v1.3]
+ add plugin API
+ add MSAA
+ add option for supersampling when rendering to an image file
+ add support for #include keyword
+ add ability to load projects by drag and dropping them
+ add search in Options -> Shortcuts
+ change default font & theme
+ change how MouseButton works
+ various fixes

[v1.2.4]
+ add drag & drop to PipelineUI
+ add ability to "hide/deactivate" certain shader pass
+ fix TextEditor shortcut system (**please update your shortcuts.kb file**)
+ fix Home/End in TextEditor
+ fix gizmo interaction when preview is zoomed in
+ fix Find tool's highlighting
+ fix pause functionality
+ scroll to Find tool's selection
+ Editor.Replace is now bound to CTRL+H (instead of SHIFT+H)

[v1.2.3]
+ add 3D textures
+ add audio shaders (GLSL synthesized audio)
+ add ability to have multiple cameras / camera snapshots
+ add ability to change variable type after variable has been created
+ add a window where all system variables are listed
+ add magnifier tool to texture/image preview window
+ add find and replace feature in the text editor
+ add right click context menu in the text editor
+ add Editor.FindNext shortcut
+ add feature that automatically adds variables on shader pass creation
+ add support for HLSL types in the buffer format
+ add ability to change warning, message and error text colors in the theme files
+ add ability to use sprintf format specifiers in filenames when exporting image sequence
+ fix copy and paste
+ fix matrix variable exporting & importing
+ fix a bug where openning Sobel -> Edge -> Sobel examples would break the rendered
+ fix RT default size
+ fix bounding box color
+ fix a bug where SHADERed would recompile file two times after clicking "Compile" button
+ fix texture loading
+ fix "GeometryShader" & "VulkanSimple" example
+ fix a bug where "Outline" example wouldn't work after Edge/Sobel examples
+ fix ObjectPreviewUI::Close()
+ fix a crash on openning "cubemap" example
+ improve image sequence export speed
+ any form of project saving should also now save all shader code modifications
+ shader code modifications now also count as project modifications (now you will get "Are you sure" message box on exit)
+ recompile shader pass after we change it's shader path
+ close code editors after a shader pass has been deleted
+ prevent various crashes (loading wrong 3D model file, wrong project file, compute shaders not supported, etc...)
+ color compute shader labels light/dark green (can be changed)
+ improve CTRL+F
+ internal changes

[v1.2.2]
+ rework image objects (you can choose how to bind them & removed Read & Write flags) - **some old projects with compute shaders may not work**
+ add support for Vulkan GLSL
+ add input layout manager
+ add CTRL+F in code editor
+ add tangent, bitangent and color vertex attributes
+ add ability to export your shader to an image sequence
+ add support for drag & drop
+ add resource manager
+ add project change detection & "Are you sure?" message box
+ add "Hide menu bar in performance mode" option
+ add glslang error messages when preprocessing fails
+ add CamerPosition3 and CameraDirection3 variables
+ fix a bug which would crash whole app after deleting last variable in the list
+ fix a bug where variable name was wrongly limited to 16chars when being created
+ fix a bug where SHADERed would use absolute paths even if project and shader file were on the same drive
+ fix file "Compile" option so that it only recompiles the correct shader pass
+ fix "Recompile on file change" so that it only recompiles correct shaders
+ fix non resizable columns
+ fix a bug where SHADERed would sometimes crash on exit
+ fix a bug where no actual error messages show up with the auto recompile on HLSL and Vulkan GLSL shaders
+ fix "Edge" example
+ fix for two vertical scrollbars in CodeEditorUI
+ fix for loading textures with improper size
+ fix ScreenQuadNDC rendering in GLSL projects
+ save "performance mode" state on exit
+ increase variable name length from 32 to 256
+ color the "Name:" label red when user tries to use already existing item name

[v1.2.1]
+ fix ctrl + backspace / ctrl + delete
+ fix ctrl + shift selecting
+ fix "Insert spaces on tab press" option
+ fix "Show horizontal scrollbar" option
+ fix text editor error message color on light theme (& add ErrorMessage property to editor themes)
+ fix various transcompiler crashes
+ fix a crash that occurs when fetching texel data from a texture without a sampler in a HLSL shader
+ fix a bug where text editor would append \n at the end of file
+ fix crash when using RWTexture2D
+ fix crash on HLSL function calls with no arguments
+ write item type in the Properties
+ minor UI polishing

[v1.2]
+ add compute shaders
+ add empty image object
+ fix loading files from different drives on Windows
+ fix saving info about item opened in PropertyUI
+ fix "Show error list window when build finishes with an error" option
+ temprorary fix for crash on float3(), float4(), etc...

[v1.1.5]
+ add auto recompile option (compile shaders every 200ms)
+ add option to disable/enable window's alpha channel
+ add "Show whitespace" option
+ add ScreenQuadNDC
+ add the ability to set CodeUI.Save and Project.Save to same shortcut
+ add option to stream logs to log.txt
+ fix some TextEditor bugs

[v1.1.4]
+ add option to reset time
+ add CTRL+ALT+MWheel to zoom in/out
+ add cubemap preview
+ add object preview window
+ add buffer objects
+ add instancing
+ add automatic update checks
+ add option to modify system variables when rendering to image
+ fix zoom area dragging
+ fix zoom selection bounds
+ fix picking when zoomed in
+ fix gizmo, bounding box & zoom area performance
+ fix a bug where SHADERed would crash with multiple 3D models

[v1.1.3]
+ add icon font
+ add tool bar
+ add zoom in/out functionality
+ add zoom controls (ALT + LEFT drag to select the zoom area, ALT + RIGHT drag to move the zoom area, ALT + DBL CLICK reset zoom)
+ add format property to render textures
+ add ability to pause and increase time by 100ms (or hold CTRL to increase just by 1 frame)
+ add Mouse and MouseButton system variables
+ fix float4/int4/bool4 variables
+ fix last frame flag for GeometryTransform
+ fix a bug where bounding box wouldn't show if gizmo is turned off
- disable last frame flag for ViewportSize

[v1.1.2]
+ add Pointer function (variables can now be pointers to other variables)
+ add shader macros
+ add FrameIndex system variable
+ add shader variable flags (invert matrices, use last frame values, etc...)
+ add option to disable RT clear
+ fix clear color parsing
+ fix a bug where SHADERed would crash when adding a shader pass through CreateItemUI

[v1.1.1]
+ fix a bug when multiple textures are bound but some are not used
+ fix GLSL shaders (specify location)

[v1.1.0]
... working on OpenGL port ...
+ port from DirectX to OpenGL & SDL (works on linux now)
+ add CMakeLists.txt
+ use assimp - supports more 3D model file formats
+ link glslang and SPIRV-Cross (rather than using external processes)
+ only one variable manager for all stages (variable names now matter though)
+ write actual error messages in the Output window
+ add line number and shader type (source) in the Output Window
+ support single key shortcuts (example: press F to go into Performance mode)
+ KeyboardShortcuts doesnt listen to repeated events anymore
+ merge DepthStencilState, RasterizerState, BlendState into one state called RenderState
+ HLSL to GLSL transcompiler
+ cubemaps now require path to 6 separate textures
+ append version to project files (+ backwards compatibility)
+ implement version #2 of SHADERed project files
+ SHIFT+drag gizmo for faster dragging
+ slow down the application when minimized
+ add "Apply the FPS limit to the whole application" option
+ add "Limit application to 60FPS when it is not focused" option
+ limit rotation value between [0, 360] in PropertyUI
+ duplicated object now appears in PropertyUI if "PropertyPick" option is turned on
+ IsPicked variable now works with multiple items selected
+ prompt user to save project when user tries to save changes to a shader file in a template
+ prompt user to save project when user tries to open template shaders in an external editor
+ add an actual logger -> outputs high amount of stuff in log.txt
+ fix mouse cursor capture when rotating camera
+ fix bounding boxes for other geometry types
+ fix for "app wont gain focus when clicking on anything but the titlebar"
+ fix a bug where the app would crash if when set as a default app for ".sprj" files
+ fix a bug where gizmo wont move with the selected object when the object is moved using PropertyUI
+ fix a bug where user couldnt write {} (and other characters using alt and ctrl) in the text editor
+ fix a bug where user could pick a render state item by double clicking it in PipelineUI
+ fix a bug where two items could exist with names "Box", "BoX", etc...
+ fix a bug where where SHADERed wouldnt check for file updates on a recently added geometry shader
- remove FXAA
- remove stats page
- remove input layout manager
- remove glslangValidator.exe & SPIRVCross.exe

[v1.0.3]
+ add ability to duplicate selected items
Expand Down

0 comments on commit a9d66af

Please sign in to comment.