Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using SFML.System;
- using SFML.Window;
- using SFML.Graphics;
- using TGUI;
- namespace TGUITest {
- class Program {
- static void Main (string[] args) {
- // basic window junk
- RenderWindow window = new RenderWindow(new VideoMode(100, 60), "TGUI.Net Canvas Test");
- window.Closed += (s, e) => window.Close();
- Gui gui = new Gui(window);
- // create test content to be rendered to texture
- RectangleShape rect = new RectangleShape(new Vector2f(200, 200));
- TestRenderable testRenderable = new TestRenderable();
- Drawable[] drawableEntities = { rect, testRenderable };
- // standard rendertexture setup
- RenderTexture intermediate = new RenderTexture(200, 200);
- Sprite intermediateContext = new Sprite(intermediate.Texture) {
- Scale = new Vector2f(0.1f, 0.1f)
- };
- // create tgui drawing area
- Canvas intermediate2_tgui = new Canvas(20, 20) {
- Position = new Vector2f(20, 20)
- };
- gui.Add(intermediate2_tgui);
- // create sfml drawing area for comparison
- RenderTexture intermediate2_sfml = new RenderTexture(20, 20);
- Sprite intermediate2_ctx = new Sprite(intermediate2_sfml.Texture) {
- Position = new Vector2f(80, 20)
- };
- while (window.IsOpen) {
- // basic window junk
- window.DispatchEvents();
- window.Clear();
- // draw to the internal sfml rt
- intermediate.Clear();
- foreach (Drawable ent in drawableEntities) {
- intermediate.Draw(ent);
- }
- intermediate.Display();
- // draw to the tgui widget
- intermediate2_tgui.Clear();
- intermediate2_tgui.Draw(intermediateContext);
- intermediate2_tgui.Display();
- // draw to the comparison rendertexture
- intermediate2_sfml.Clear();
- intermediate2_sfml.Draw(intermediateContext);
- intermediate2_sfml.Display();
- // output comparison
- window.Draw(intermediate2_ctx);
- gui.Draw();
- window.Display();
- }
- }
- }
- class TestRenderable : Transformable, Drawable {
- private Vertex[] _Vertices;
- public TestRenderable () {
- _Vertices = new Vertex[] {
- new Vertex(new Vector2f(0, 0), Color.White),
- new Vertex(new Vector2f(100, 0), Color.Magenta),
- new Vertex(new Vector2f(100, 100), Color.Cyan),
- new Vertex(new Vector2f(0, 100), Color.Yellow)
- };
- }
- public void Draw (RenderTarget target, RenderStates states) {
- states.Transform *= Transform;
- target.Draw(_Vertices, PrimitiveType.Quads, states);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement