/// <summary> /// Manualy create assets with shaders and cursor textures for ImGUI. /// </summary> void _CreateAssetResources() { if (_camera == null) { _camera = Camera.main; } _initialConfiguration.SetDefaults(); if (_shaders == null) { _shaders = ScriptableObject.CreateInstance <ShaderResourcesAsset>(); _shaders.shaders = new ShaderResourcesAsset.Shaders(); _shaders.propertyNames = new ShaderResourcesAsset.PropertyNames(); _shaders.shaders.mesh = Shader.Find("DearImGui/Mesh"); _shaders.shaders.procedural = Shader.Find("DearImGui/Procedural"); _shaders.propertyNames.baseVertex = "_BaseVertex"; _shaders.propertyNames.vertices = "_Vertices"; _shaders.propertyNames.tex = "_Tex"; } if (_cursorShapes == null) { _cursorShapes = ScriptableObject.CreateInstance <CursorShapesAsset>(); _cursorShapes.Arrow.texture = Resources.Load <Texture2D>("Cursors/dmz-white/left_ptr"); _cursorShapes.Arrow.hotspot = new Vector2(7, 4); _cursorShapes.TextInput.texture = Resources.Load <Texture2D>("Cursors/dmz-white/xterm"); _cursorShapes.TextInput.hotspot = new Vector2(11, 11); _cursorShapes.ResizeAll.texture = Resources.Load <Texture2D>("Cursors/dmz-white/move"); _cursorShapes.ResizeAll.hotspot = new Vector2(4, 5); _cursorShapes.ResizeEW.texture = Resources.Load <Texture2D>("Cursors/dmz-white/sb_h_double_arrow"); _cursorShapes.ResizeEW.hotspot = new Vector2(11, 11); _cursorShapes.ResizeNS.texture = Resources.Load <Texture2D>("Cursors/dmz-white/sb_v_double_arrow"); _cursorShapes.ResizeNS.hotspot = new Vector2(11, 11); _cursorShapes.ResizeNESW.texture = Resources.Load <Texture2D>("Cursors/dmz-white/fd_double_arrow"); _cursorShapes.ResizeNESW.hotspot = new Vector2(11, 11); _cursorShapes.ResizeNWSE.texture = Resources.Load <Texture2D>("Cursors/dmz-white/bd_double_arrow"); _cursorShapes.ResizeNWSE.hotspot = new Vector2(11, 11); _cursorShapes.Hand.texture = Resources.Load <Texture2D>("Cursors/dmz-white/hand2"); _cursorShapes.Hand.hotspot = new Vector2(9, 5); _cursorShapes.NotAllowed.texture = Resources.Load <Texture2D>("Cursors/dmz-white/crossed_circle"); _cursorShapes.NotAllowed.hotspot = new Vector2(11, 11); } }
public static IImGuiRenderer Create(RenderType type, ShaderResourcesAsset shaders, TextureManager textures) { Assert.IsNotNull(shaders, "Shaders not assigned."); switch (type) { case RenderType.Mesh: return(new ImGuiRendererMesh(shaders, textures)); case RenderType.Procedural: return(new ImGuiRendererProcedural(shaders, textures)); default: return(null); } }
public ImGuiRendererProcedural(ShaderResourcesAsset resources, TextureManager texManager) { if (SystemInfo.graphicsShaderLevel < 45) { throw new System.Exception("Device not supported"); } _shader = resources.shaders.procedural; _texManager = texManager; _texID = Shader.PropertyToID(resources.propertyNames.tex); _verticesID = Shader.PropertyToID(resources.propertyNames.vertices); _baseVertexID = Shader.PropertyToID(resources.propertyNames.baseVertex); }
public ImGuiRendererMesh(ShaderResourcesAsset resources, TextureManager texManager) { _shader = resources.shaders.mesh; _texManager = texManager; _texID = Shader.PropertyToID(resources.propertyNames.tex); }