Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.X] Ograniczenie obszaru renderowania

Ostatnio zmodyfikowano 2024-11-19 04:29
Autor Wiadomość
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.

P-181923
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:

C/C++
virtual void draw() {
   
window->draw( rect );
   
scrollbar->draw();
   
glEnable( GL_SCISSOR_TEST ); // error here
   
glScissor( 100, 100, 200, 200 ); // error
   
t->draw();
   
glDisable( GL_SCISSOR_TEST ); // error here
}


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  
P-181924
tBane
Temat założony przez niniejszego użytkownika
» 2024-11-19 04:20:58
Użyłem
sf::RenderTexture



C/C++
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 );
P-181925
tBane
Temat założony przez niniejszego użytkownika
» 2024-11-19 04:29:57
Jeszcze dodane marginesy :-)

C/C++
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 );
P-181926
« 1 »
  Strona 1 z 1