Added details of what this actually does
No edit summary |
(Added details of what this actually does) |
||
| Line 1: | Line 1: | ||
{{widgetmethod}} | {{widgetmethod}} | ||
Set whether subsequent [[API Texture SetTexCoord|SetTexCoord()]] operations | Set whether subsequent [[API Texture SetTexCoord|SetTexCoord()]] operations also modify the rendering rectangle of a Texture object to maintain texture scaling when the texture coordinates are modified. This adjustment is only implemented for rectangular regions and may yield undesirable results for rotation or shearing transformations. | ||
MyTexture:SetTexCoordModifiesRect(enableFlag) | MyTexture:SetTexCoordModifiesRect(enableFlag) | ||
| Line 8: | Line 9: | ||
:::'''false''' (default) to stretch/shrink the texture on SetTexCoord calls. | :::'''false''' (default) to stretch/shrink the texture on SetTexCoord calls. | ||
:::'''true''' to modify the display rectangle's dimensions instead. | :::'''true''' to modify the display rectangle's dimensions instead. | ||
== Details == | |||
By default a Texture object renders the underlying texture image across the entire surface of the Texture region, so setting TexCoords that represent a subset of the underlying image results in a scaled or stretched result. If SetTexCoordModifiesRect is set to true, then the rendering rectangle is adjusted relative to the Texture region, so that sizing/scaling will be preserved relative to the original (0,1,0,1) coordinates. The new rendering area has the same BOTTOMLEFT corner as the Texture region, but then a width and height defined as follows: | |||
T is a texture with a display width of W and display height of H. | |||
T:SetTexCoordModifiesRect(true) is called | |||
T:SetTexCoord(x1,x2, y1,y2) is then executed | |||
The texture image is then rendered onto a screen region with the same BOTTOMLEFT corner as T, but with a width of W * (abs(x2-x1)) and height of H * (abs(y2-y1)) | |||
== Examples == | == Examples == | ||