[SFML 2.X] Ograniczenie obszaru renderowania
Ostatnio zmodyfikowano 2024-11-19 04:29
tBane Temat założony przez niniejszego użytkownika |
[SFML 2.X] Ograniczenie obszaru renderowania » 2024-11-19 02:46:52 Witam. Piszę panel z intrukcjami do mojego Edytora. Chciałbym ograniczyć pole renderowania tekstu do czerwonego prostokąta. Jak to zrobić w SFML 2.5.2 ? ChatGPT piszę o użyciu sf::View ale to nie działa. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-11-19 03:32:44 Próbowałem użyć OpenGL'a ale nie zadziałało: virtual void draw() { window->draw( rect ); scrollbar->draw(); glEnable( GL_SCISSOR_TEST ); glScissor( 100, 100, 200, 200 ); t->draw(); glDisable( GL_SCISSOR_TEST ); }
Severity Line Code Description Project File Suppression State Details Error 50 C2065 'GL_SCISSOR_TEST': undeclared identifier RPG D:\tBane\sources&programs\002_RPG2D - game with editor\headers\ScrollableText.hpp Error 50 C3861 'glEnable': identifier not found RPG D:\tBane\sources&programs\002_RPG2D - game with editor\headers\ScrollableText.hpp Error 51 C3861 'glScissor': identifier not found RPG D:\tBane\sources&programs\002_RPG2D - game with editor\headers\ScrollableText.hpp Error 53 C2065 'GL_SCISSOR_TEST': undeclared identifier RPG D:\tBane\sources&programs\002_RPG2D - game with editor\headers\ScrollableText.hpp Error 53 C3861 'glDisable': identifier not found RPG D:\tBane\sources&programs\002_RPG2D - game with editor\headers\ScrollableText.hpp
|
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-11-19 04:20:58 Użyłem sf::RenderTexture text_texture.create( width - 2 * margin, height ); sf::View v = sf::View( sf::FloatRect( sf::Vector2f( - width / 2.0f, - height / 2.0f ), sf::Vector2f( width - 2 * margin, height - 2 * margin ) ) ); text_texture.setView( v ); text_texture.setSmooth( true ); text_texture.clear( sf::Color::Transparent ); text_texture.draw( t->rect ); text_texture.draw( t->text ); text_texture.display(); text_sprite = sf::Sprite( text_texture.getTexture() ); text_sprite.setPosition( - width / 2.0f, - height / 2.0f );
|
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-11-19 04:29:57 Jeszcze dodane marginesy :-) text_texture.create( width - 2 * margin, height - 2 * margin ); sf::View v = sf::View( sf::FloatRect( sf::Vector2f( -( width - 2 * margin ) / 2.0f, -( height - 2 * margin ) / 2.0f ), sf::Vector2f( width - 2 * margin, height - 2 * margin ) ) ); text_texture.setView( v ); text_texture.setSmooth( true ); text_texture.clear( sf::Color::Transparent ); text_texture.draw( t->rect ); text_texture.draw( t->text ); text_texture.display(); text_sprite = sf::Sprite( text_texture.getTexture() ); text_sprite.setPosition( - width / 2.0f + margin, - height / 2.0f + margin );
|
|
« 1 » |