1,420 Commits over 943 Days - 0.06cph!
Soundscapes always transmit, should fix long initial delay
speedtree sdk + vpc scripts
binaries
Speedtree SDK to DMX serializer for RenderMeshFile node
* convert stsdk compressed vertex stream to our own, 32 bytes is good
* compressed vertex stream contains packed normals & wind data
* imports each lod & material
Fix some more questionable crap I did
Fix texture compiles being dark, typoed SrgbGammaToLinear instead of SrgbLinearToGamma 🤦
Fix threading issue in navgen too
Delete some unused tier0 files
Fix threading issue in raytraceenvironment, be more explicit and capture the lambda parameters earlier when the job is queued not executed
New tier0 threadpool code from Valve
* Functor processors removed in favor of std::function jobs (lambdas)
* QueueJob always returns a SmartPtr now
* JF_PER_FRAME flag added for scheduling jobs to be completed this frame
* Improvements to contention by putting stuff on cachelines
* New simple ParallelFor usage:
```cpp
ParallelFor( 0, 10, []( int n )
{
Msg( "%d\n", n );
} );
```
The fun part: replaced all functor thread jobs with lambdas, and make it work with SmartPtrs
This is just done manually by me and isn't from Valve, so there's likely
a few cock ups - but everything I've tested has been good.
Fix all occurences of WaitForFinishAndRelease() on smart ptrs
Fix all occurences of WaitForFinishAndRelease() on smart ptrs
New tier0 threadpool code from Valve
* Functor processors removed in favor of std::function jobs (lambdas)
* QueueJob always returns a SmartPtr now
* JF_PER_FRAME flag added for scheduling jobs to be completed this frame
* Improvements to contention by putting stuff on cachelines
* New simple ParallelFor usage:
```cpp
ParallelFor( 0, 10, []( int n )
{
Msg( "%d\n", n );
} );
```
The fun part: replaced all functor thread jobs with lambdas, and make it work with SmartPtrs
This is just done manually by me and isn't from Valve, so there's likely
a few cock ups - but everything I've tested has been good.
Remove ui test that doesn't exist
Delete native saverestore systems
Saved myself a 5 minute change by spending hours deleting code, and I
don't think I even got it all
remove some unused convars cl_team, cl_class, (versus_)stats_highlight_interval, mapcyclefile and some debug concmds
missed rubikon and navlib for threadpool api updates
New tier0 thread pooling code, should schedule better with less contention, slightly changed API
Lots of API changes here I've replicated to the rest of our code base,
I'd imagine I've fucked at least one thing up though.
Functor jobs are replaced by IThreadPool::QueueJob(WithFlags) which
accepts a std::function, much simpler to use and execute
Delete all this saverestore shit
remove convars: cl_team, cl_class, (versus_)stats_highlight_interval
ui: onmousedown triggers from middle mouse too, seems accidental that it wasn't
make antlr codegen more sane, hopefully fixes it on build server
Delete generate_decal_normals.vmat
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Shader fixes where DXC is slightly less forgiving on bad syntax (has a bad hack for material api in it)
Rip up Material API to get it compiling
Shader resource v2 has optional dx11 and vulkan blocks, if a block doesn't exist will use fallback shader
bare bones video code using video.dll for ref
Initial commit
Create README.md
Added concrete + stone + pavement + plaster materials
Added wood plank hs
.meta for uploaded materials
Added materials + blend
concrete floor_tile_blend_02
dirt_ground_02
plaster_b_hs
plywood_panels tileable
plywood_hs
naming updates
Shader
Add red dot scope shader https://i.imgur.com/e2uQIMT.mp4
Test for rick
Added IridescenceScale
Allow rendering only sights, increase red dot default brightness, let iridescence absorb albedo
Added materials
concrete_polished + plywood_panels_painted mats and blends
Ceiling plaster
Added tarpaulin mats
missing .meta
cinderblocks tileable + hotspot (wip)
https://files.facepunch.com/jason/1b1411b1/sbox_jbXhR8KBM5.jpg
Added USP (from sbox game)
Fixed 9mm eject particle
missing .meta
Update README.md
silencer_9mm: explicitly bind to a "silencer" bone
v_usp: viewmodel set-up + barebones animgraph
beer_cask asset files
Fixed plaster 2 hs
added cast concrete hs
updated cast concrete hs
Use git lfs
Add Asset.GetUnrecognizedReferencePaths() - returns a list of paths this asset references that can not be resolved (missing from disk)
Missing asset resolver when loading Hammer maps
If your map contains missing assets when you load your map
(after EditorReferences have been resolved), we will check if there are
matching assets on asset.party and prompt the user to install them.
We don't have to worry about updating EditorReferences here either,
as this is automatically done on save if any asset refs have a linked
package.
After the assets are installed the user will be prompted to reload the
map - this is needed to reload the missing assets.
https://files.facepunch.com/matt/1b1811b1/image%20%281%29.png
Fix Gizmo.Draw.SolidCircle transforms
Hammer: display download progress of cloud assets using gizmos
Can publish shaders & shader graphs
Hammer undos for sndscape and sound drops
Hammer: cloud materials don't stick to everything they've hovered, and can be undone now
History API for Hammer
Hammer: add undos for asset.party models & dragged entities
SceneSunLight transform sets the correct direction now
Add cloud path to CONTENT search path, fixes hotspot rects not working but probably loads of other weird stuff too
Gizmo.Model shouldn't cast shadows
Make sure we have a Filesystem.Content early even though LocalProjects aren't added yet, fixes asset type icons not registering
Rebuild content path and open editor window on PostBootstrap since LocalProject are added in Bootstrap now, otherwise Qt doesn't know where any files are
tools_sprite shader: can use in standard mode
Gizmo.Draw.Sprite correct transform
Gizmo sprites draw the right texture although this generic shader is shit
Update MapEntity.TypeDescription when class is changed from native
Oops not a string, return enum
CMapView m_pToolManager can be nullptr when rendering thumbnail
Add MapNode.Visible property, don't call DrawGizmos for hidden entities
Hammer manipulation mode maps to Gizmo.Settings.EditMode: select, position, rotate, scale, pivot
Hammer Gizmos (#874) ( https://wiki.facepunch.com/sbox/Hammer_Gizmos )
https://files.facepunch.com/matt/1b0511b1/gizmos.mp4
Don't draw editor gizmos if "show game objects only"
Whitelist some System.Buffer methods
* System.Buffer.BlockCopy( System.Array, System.Int32, System.Array, System.Int32, System.Int32 )
* System.Buffer.ByteLength( System.Array )
* System.Buffer.GetByte( System.Array, System.Int32 )
* System.Buffer.SetByte( System.Array, System.Int32, System.Byte )
interopgen: don't needlessly overwrite subfiles as this would cause c++ rebuilds everytime
Whitelist System.Lazy
Whitelist System.Runtime.CompilerServices.ConditionalWeakTable
Revert "Never recompile symlinked assets, e.g compiled asset from asset.party that you have the source file for"
This was causing more problems then it was solving, need to rethink a better way to do this.
Whitelist System.Collections.Concurrent.ConcurrentDictionary & System.Collections.Concurrent.BlockingCollection
Whitelist System.Buffers.Binary.BinaryPrimitives
Whitelist System.Environment.StackTrace
Shader Graph: Clean up recent files code; make clear recent files show again, only show max 10, re-opening a file moves it to the top of recent files
Fix build failing models, these probably need the same lodding setup as simple_dress too @DanduwFP
PropertySheet { init; } properties are read-only
Fix choppy Input.Pressed outside of Simulate (e.g FrameSimulate or UI Tick) when FPS was lower than tick rate
Wrap map entity in a static EditorEntity class, expose if it's selected, transform, etc. usable within game code.
Hammer: managed traces add their trace info within list of native Hammer traces, can order themselves alongside native traces so we don't cock block others
Managed gizmos suppress native Hammer manipulators.. doesn't work in some cases, probably need to do a different way
SerializedEntity: right now it's just an accessor for MapEntity keyvalues
ui_text shader works in Hammer now (why do we need ToolsVis mode for this?)
Move rest of HammerGizmos to Sandbox.Tools, call static DrawGizmo on entities
Hammer gizmos using the ISceneView now
Iterate map entities, find their matching type and call static method DrawGizmo within a Gizmo.Scope
Move Hammer Gizmo instance to be owned by MapView