c# - Error using Rasterizer Scissoring in xna -


i'm trying use scissoring clip text drawn using spritebatch.drawstring method.

the following part of draw method:

    public override void draw(gametime gametime, spritebatch spritebatch)     {      ...          spritebatch.graphicsdevice.rasterizerstate = new rasterizerstate();         spritebatch.graphicsdevice.rasterizerstate.scissortestenable = true;          rectangle rectangle = new rectangle();         rectangle.height = 50;         rectangle.width = 1;  //set 1 i'll know if it's working          spritebatch.graphicsdevice.scissorrectangle = rectangle;          (int = 0; < career.news.count; i++)         {             vector2 newsitems = new vector2(200 + * 80, 550);             spritebatch.drawstring(defaulttext, career.news[i], newsitems, color.black);         }          spritebatch.graphicsdevice.rasterizerstate.scissortestenable = false;    ...    } 

i following error:

"cannot change read-only rasterizerstate. state objects become read-only first time bound graphicsdevice. change property values, create new rasterizerstate instance."

which don't understand because i've created new instance in above code. missing?

edit: amended code - errors removed clipping still not working:

        rectangle rectangle = new rectangle();         rectangle.height = 50;         rectangle.width = 1;          rasterizerstate rasterizerstate = new rasterizerstate();         rasterizerstate.scissortestenable = true;         spritebatch.graphicsdevice.rasterizerstate = rasterizerstate;          spritebatch.graphicsdevice.scissorrectangle = rectangle;          (int = 0; < career.news.count; i++)         {             vector2 newsitems = new vector2(200 + * 80, 550);             spritebatch.drawstring(defaulttext, career.news[i], newsitems, color.black);         }          rasterizerstate rasterizerstate2 = new rasterizerstate();         rasterizerstate2.scissortestenable = false;         spritebatch.graphicsdevice.rasterizerstate = rasterizerstate2; 

what means can't modify spritebatch.graphicsdevice.rasterizerstate property. need create instance, set properties, , pass spritebatch.graphicsdevice.rasterizerstate.

rasterizerstate r = new rasterizerstate(); r.scissortestenable  = true; spritebatch.graphicsdevice.rasterizerstate = r; .... rasterizerstate r1 = new rasterizerstate(); r1.scissortestenable = false; spritebatch.graphicsdevice.rasterizerstate = r1; 

Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -