Biblioteki C/C++
Texture
[klasa] Przechowuje dane obrazu typu Image w pamięci karty graficznej.Składnia
#include <SFML/Graphics.hpp>
namespace sf
{
class SFML_GRAPHICS_API Texture
: GlResource;
}
Opis szczegółowy
Tekstura może zostać wczytana z pliku (
loadFromFile), z pamięci (
loadFromMemory) oraz ze strumienia (
loadFromStream). Wymienione metody likwidują konieczność jawnego korzystania z obrazu typu
Image i wczytywania danych za pomocą
loadFromImage (można jednak tak zrobić, jeśli istnieje potrzeba zmiany wartości poszczególnych pikseli przed wczytaniem ich do tekstury).
Dodatkowe informacje
Dzięki przechowywaniu danych w pamięci karty graficznej przekazywanie obrazu pomiędzy obiektem tej klasy, a wybranym celem typu
RenderTarget jest bardzo szybkie. Takie podejście ma jednak również pewne wady, na przykład brak możliwości swobodnej zmiany poszczególnych pikseli, jak w przypadku obiektów typu
Image. Aby to zrobić, należy najpierw przygotować obraz, a następnie go zaktualizować za pomocą metody
update. Warto jednak pamiętać, że operacja kopiowania danych pomiędzy obiektami tej klasy, a obiektami typu
Image jest wolna. Dlatego na przykład w celu uzyskania kolizji per-pixel warto oddzielnie przechowywać informacje o kolizji, chociażby za pomocą
std::vector < bool >
.
Przykłady
Wykorzystanie tekstury do narysowania obrazu przechowywanego w pliku:
sf::Texture tekstura;
assert( tekstura.loadFromFile( "tekstura.png" ) );
sf::Sprite sprajt;
sprajt.setTexture( tekstura );
okno.draw( sprajt );
Przetwarzanie "klatek wideo" w czasie rzeczywistym:
sf::Texture tekstura;
assert( tekstura.create( 640, 480 ) );
sf::Sprite sprajt( tekstura );
while( warunek )
{
sf::Uint8 * piksele =...;
tekstura.update( piksele );
okno.draw( sprajt );
}
Rysowanie za pomocą OpenGL:
sf::Texture::bind( & tekstura );
sf::Texture::bind( NULL );
Zagadnienia powiązane
Sprite | Określa teksturę wraz z wybranymi przekształceniami. (klasa) |
---|
Image | Klasa do wczytywania, modyfikowania i zapisywania obrazów 2D. (klasa) |
---|
RenderTexture | (klasa) |
---|
Linki zewnętrzne
Wykaz elementów dowiązanych
bind |
Umożliwia wykorzystanie tekstury w kodzie OpenGL. (metoda statyczna) |
copyToImage |
Kopiuje teksturę do obiektu typu Image (metoda) |
create |
Tworzy nową teksturę o podanych wymiarach. (metoda) |
generateMipmap |
Tworzy mipmapę na podstawie obecnej zawartości tekstury. (metoda) |
getMaximumSize |
Zwraca maksymalny rozmiar tekstury wspierany przez sterowniki karty graficznej. (metoda statyczna) |
getNativeHandle |
Pobiera uchwyt do tekstury OpenGL. (metoda) |
getSize |
Zwraca rozmiar tekstury. (metoda) |
isRepeated |
Informuje, czy powtarzanie tekstury podczas rysowania poza jej obszarem jest włączone. (metoda) |
isSmooth |
Informuje, czy rozmazywanie tekstury jest włączone. (metoda) |
isSrgb |
Informuje, czy następują przekształcenia pomiędzy przestrzenią kolorów sRGB oraz liniową przestrzenią kolorów. (metoda) |
loadFromFile |
Wczytuje teksturę z podanego pliku. (metoda) |
loadFromImage |
Wczytuje teksturę z obrazu typu Image. (metoda) |
loadFromMemory |
Wczytuje teksturę z pamięci. (metoda) |
loadFromStream |
Wczytuje teksturę ze strumienia typu InputStream. (metoda) |
operator= |
Przeciążenie operatora przypisania. (operator - metoda) |
setRepeated |
Włącza lub wyłącza powtarzanie tekstury podczas rysowania poza jej obszarem. (metoda) |
setSmooth |
Włącza lub wyłącza rozmazywanie tekstury. (metoda) |
setSrgb |
Włącza lub wyłącza przekształcenia pomiędzy przestrzenią kolorów sRGB oraz liniową przestrzenią kolorów. (metoda) |
Texture |
Tworzy obiekt tej klasy. (konstruktor) |
update |
Aktualizuje zawartość tekstury. (metoda) |
~Texture |
Niszczy obiekt tej klasy. (destruktor) |
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.