Jump to content
  • Advertisement

galover

Member
  • Content Count

    0
  • Joined

  • Last visited

Community Reputation

119 Neutral

About galover

  • Rank
    Newbie
  1. Okay, I'm not sure, but seems like forced ambient occlusion in NVIDIA driver was causing this.
  2. Just now I found out that even StretchRect of my texture to backbuffer result in a same Z buffer on top of my texture. So we can rule out all states, shaders and other stuff, I guess.   Now it's just a texture and a backbuffer...   DirectDevice.StretchRect(SrcSurface, @SrcRect, BackBuffer, @DstRect, D3DTEXF_NONE);
  3. I'm trying to draw on top of other DirectX 9 application (Game) and here it goes, this is strange considering I tried to clean everything but it just draw it nonetheless I'm drawing a white rectangle here (COLOROP and ALPHAOP is disabled) but it still draw some sort of Z buffer on top of it. [attachment=35784:something_went_wrong.png] this code helps so I think this is actually a Z buffer, but... I'm not feeling comfortable about cleaning someone else Z buffer, you know, what if they would need it? DirectDevice.Clear(0, nil, D3DCLEAR_ZBUFFER, 0, 0.0, 0); Draw code: // trying to clean something, it doesn't help by the way Assert(Succeeded(DirectDevice.GetDeviceCaps(Caps))); for Index := 1 to Caps.MaxStreams - 1 do begin Assert(Succeeded(DirectDevice.SetStreamSource(Index, nil, 0, 0))); Assert(Succeeded(DirectDevice.SetTexture(Index, nil))); end; for Index := 1 to Caps.NumSimultaneousRTs - 1 do Assert(Succeeded(DirectDevice.SetRenderTarget(Index, nil))); // actual draw Assert(Succeeded(DirectDevice.SetFVF(VertexFVF))); Assert(Succeeded(DirectDevice.SetStreamSource(0, Vertex, 0, SizeOf(TVertex)))); Assert(Succeeded(DirectDevice.SetTexture(0, Texture))); Assert(Succeeded(DirectDevice.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2)));  State (pretty much is a copy of ID3DXSprite code):      Res:= DirectDevice.SetRenderState(D3DRS_ALPHABLENDENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);     Res:= DirectDevice.SetRenderState(D3DRS_ALPHAREF, $00);     Res:= DirectDevice.SetRenderState(D3DRS_ALPHATESTENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);     Res:= DirectDevice.SetRenderState(D3DRS_CLIPPING, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_CLIPPLANEENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_BLUE or D3DCOLORWRITEENABLE_GREEN or D3DCOLORWRITEENABLE_RED);     Res:= DirectDevice.SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);     Res:= DirectDevice.SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);     Res:= DirectDevice.SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);     Res:= DirectDevice.SetRenderState(D3DRS_ENABLEADAPTIVETESSELLATION, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);     Res:= DirectDevice.SetRenderState(D3DRS_FOGENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_LIGHTING, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_RANGEFOGENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);     Res:= DirectDevice.SetRenderState(D3DRS_SPECULARENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);     Res:= DirectDevice.SetRenderState(D3DRS_SRGBWRITEENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_STENCILENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_VERTEXBLEND, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_WRAP0, 0);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TEXTURE);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_DISABLE);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TEXTURE);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_DISABLE); // D3DTOP_SELECTARG1     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);     Res:= DirectDevice.SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);     Res:= DirectDevice.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);     Res:= DirectDevice.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_ADDRESSW, D3DTADDRESS_CLAMP);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_MAXMIPLEVEL, 0);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_MAXANISOTROPY, 1);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_MIPMAPLODBIAS, 0);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_SRGBTEXTURE, 0);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_ELEMENTINDEX, 0);     Res:= DirectDevice.SetSamplerState(0, D3DSAMP_DMAPOFFSET, 0);    // below settings is not from ID3DXSprite     Res:= DirectDevice.SetPixelShader(nil);     Res:= DirectDevice.SetVertexShader(nil);     Res:= DirectDevice.SetVertexDeclaration(nil);     Res:= DirectDevice.LightEnable(0, False);     Res:= DirectDevice.SetRenderState(D3DRS_ZENABLE, Ord(FALSE));     Res:= DirectDevice.SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, Ord(FALSE));      I really don't know how to deal with it, so maybe anyone can help me, please.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!