コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #4
0
 public ImGuiRendererMesh(ShaderResourcesAsset resources, TextureManager texManager)
 {
     _shader     = resources.shaders.mesh;
     _texManager = texManager;
     _texID      = Shader.PropertyToID(resources.propertyNames.tex);
 }