Sign in to follow this  
Freezer

Writing onto a Sufrace in Managed DirectX

Recommended Posts

I have a problem with writing to a surface with DirectX and C#. The thing is, that i create a texture, from a bitmap, and then i wand to write to that surface the hash code of the Red color.
private void PlayWithTexture(Texture tex)
{
	int hash;
	Bitmap bit = bmp1;
	
	Surface surf = null;
	int levelCount = tex.LevelCount;
	surf = tex.GetSurfaceLevel(0);
	Color clr;

	int []hasharray = new int[100];
	for(int i=0; i< 100; i++)
        hasharray[i] = hash;

	GraphicsStream gs;
	gs = surf.LockRectangle(LockFlags.None);
	try
	{
		if(gs.CanWrite)
		{
			gs.Write(hasharray);
		}
	}
	catch(Exception e)
	{
	}
        surf.UnlockRectangle();
			
}


and that's the code for initializing the Bitmap, and the texture
Bitmap bmp3 = null;
Texture tex2 = null;
bmp3 = new Bitmap(this.GetType(),"Bean.bmp");
tex2 = new Texture(device,bmp3,0,Pool.Managed);


it runs, but i still see only the bitmap, i thought i would see at least a piece of the bitmap turned to red. In a C++ sample, CaptureTex9, they use a pointer to the surface, and Lock it, and edit it, how can i do something like that in C#? Edited by Coder: Used source tags. Note that GDNet code and source tags use square brackets[] instead of angle brackets <>. Source tags even have support for C# syntax highlighting. See GDNet Forums FAQ for details [Edited by - Coder on August 5, 2004 4:44:54 PM]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this