DirectX Rendering Overlay Issues menu

User Tag List

Results 1 to 2 of 2
  1. #1
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    DirectX Rendering Overlay Issues

    I'm trying to render textured quads onto WoW's window, but I'm having strange problems. My renders are only showing when I have, for example, my tooltip showing. When I stop hovering my mouse over a unit, etc. it doesn't show my quad. I'm disabling the z-buffer before I call render. Here's the code I'm using:

    Code:
    [StructLayout(LayoutKind.Sequential)]
    public struct CustomVertex
    {
            public float X, Y, Z, rhw;
            public float u, v;
    
    
            public const VertexFormat FVF = VertexFormat.PositionRhw | VertexFormat.Texture1;
    }
    
    public void Draw(Device d, CustomVertex[] vs /* CustomVertex[4] */, float rot, Texture tex)
    {
            if (_buf == null)
            {
                createBuffer(d);
            }
            using (var loc = _buf.Lock(0, 4 * Marshal.SizeOf(typeof(CustomVertex)), LockFlags.Discard))
            {
                loc.WriteRange<CustomVertex>(vs);
            }
            d.SetStreamSource(0, _buf, 0, Marshal.SizeOf(typeof(CustomVertex)));
            d.SetRenderState(RenderState.Lighting, false);
            d.SetRenderState(RenderState.AlphaBlendEnable, true);
            var zbuffType = d.GetRenderState<ZBufferType>(RenderState.ZEnable);
            d.SetRenderState<ZBufferType>(RenderState.ZEnable, ZBufferType.DontUseZBuffer);
            d.SetRenderState<Blend>(RenderState.SourceBlend, Blend.SourceAlpha);
            d.SetRenderState<Blend>(RenderState.DestinationBlend, Blend.InverseSourceAlpha);
            d.SetTextureStageState(0, TextureStage.AlphaOperation, TextureOperation.Modulate);
    
    
            d.VertexFormat = CustomVertex.FVF;
            d.PixelShader = null;
    
    
            d.SetTexture(0, tex);
                
            d.DrawPrimitives(PrimitiveType.TriangleFan, 0, 2);
    
    
            d.SetRenderState<ZBufferType>(RenderState.ZEnable, zbuffType);
            d.SetRenderState<ZBufferType>(RenderState.ZEnable, ZBufferType.UseZBuffer);
    }
    Code:
    void createvertices()
            {
                _vertices = new GUI.TexQuad.CustomVertex[4];
                _vertices[0].X = 100;
                _vertices[0].Y = 100;
                _vertices[0].Z = 0f;
                _vertices[0].rhw = 1.0f;
    
    
                _vertices[1].X = 300;
                _vertices[1].Y = 100;
                _vertices[1].Z = 0f;
                _vertices[1].rhw = 1.0f;
    
    
                _vertices[2].X = 300;
                _vertices[2].Y = 300;
                _vertices[2].Z = 0f;
                _vertices[2].rhw = 1.0f;
    
    
                _vertices[3].X = 100;
                _vertices[3].Y = 300;
                _vertices[3].Z = 0f;
                _vertices[3].rhw = 1.0f;
    
    
                _vertices[0].u = 0;
                _vertices[0].v = 0;
                _vertices[1].u = 1;
                _vertices[1].v = 0;
                _vertices[2].u = 1;
                _vertices[2].v = 1;
                _vertices[3].u = 0;
                _vertices[3].v = 1;
            }
    This is mainly some basic C/P code I got online for basic rendering of textures.
    Last edited by lanman92; 09-04-2011 at 10:26 PM.

    DirectX Rendering Overlay Issues
  2. #2
    Thongs's Avatar Member
    Reputation
    10
    Join Date
    Oct 2006
    Posts
    51
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I previously had this issue as well, where the lines would render if there was a tooltip shown but wouldn't once the tooltip was gone. Using SlimDX, the code which fixed it was;

    Code:
    Device.VertexShader = null;            Device.PixelShader = null;
                Device.SetRenderState(RenderState.AlphaBlendEnable, true);
                Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Add);
                Device.SetRenderState(RenderState.DestinationBlend, Blend.InverseSourceAlpha);
                Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
                Device.SetRenderState(RenderState.Lighting, 0);
                Device.SetTexture(0, null);
                Device.SetRenderState(RenderState.CullMode, Cull.None);
    So try setting BlendOperation and CullMode (iirc, CullMode is what fixed it for me)

Similar Threads

  1. Rendering ADT with DirectX
    By ejt in forum WoW Memory Editing
    Replies: 2
    Last Post: 07-28-2017, 11:39 AM
  2. Disabling DirectX rendering on D3D11 game.
    By larcerkev in forum Programming
    Replies: 1
    Last Post: 11-16-2014, 10:52 PM
  3. Managed DirectX Overlay Library?
    By miceiken in forum WoW Memory Editing
    Replies: 3
    Last Post: 06-16-2013, 01:37 PM
  4. DirectX Rendering in 4.0.1
    By Harland in forum WoW Memory Editing
    Replies: 12
    Last Post: 11-30-2010, 04:37 AM
  5. Implementation Suggestions for Managed DirectX Rendering
    By Harland in forum WoW Memory Editing
    Replies: 7
    Last Post: 07-24-2010, 02:04 AM
All times are GMT -5. The time now is 10:35 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search