konto usunięte

Temat: Quartz czy OpenGL

Czy ktoś rysował i za pomocą Quartza i OpenGL?
Chodzi mi o to, co jest szybsze w czasie wykonania.
Sprawa dotyczy rysowania schematów/diagramów 2D.
Pytanie wynika z faktu, że proces rysowania musi być bardzo, ale to bardzo wydajny.
Maciej R.

Maciej R. Developer on foot,
onFoot IT

Temat: Quartz czy OpenGL

Tego typu grafiki w Quartz są rysowane programowo i zaimplementowane w OpenGL będą na pewno znacznie szybsze, jednak będziesz musiał oprogramować wszystkie funkcje rysowania linii, krzywych, malowania gradientów, renderowania tekstu - czyli w zasadzie zrobić prostą implementację OpenVG. ;)

Może więc lepiej sprawdzić gotowe rozwiązanie, np. https://github.com/micahpearlman/MonkVG (choć nie jest to kompletna implementacja), albo zakasać rękawy i zrobić Yet Another. ;)

konto usunięte

Temat: Quartz czy OpenGL

Maciej R.:
Tego typu grafiki w Quartz są rysowane programowo i

Czy mam przez to rozumieć, że rysowanie przy użyciu Quartz'a nie wykorzystuje możliwości renderowania przy użyciu GPU? Bo z tego co wiem to OpenGL bardzo intensywnie wykorzystuje wbudowane funkcje renderowania GPU. Jeśli tak jest, to by oznaczało zdecydowanie większą wydajność OpenGL'a.
zaimplementowane w OpenGL będą na pewno znacznie szybsze, jednak będziesz musiał oprogramować wszystkie funkcje rysowania linii, krzywych, malowania gradientów, renderowania tekstu - czyli w zasadzie zrobić prostą implementację OpenVG. ;)

Program ma być na tyle specyficzny, że chyba będzie prościej implementować samemu, co pozowoli na lepszą optymalizację :)
Maciej R.

Maciej R. Developer on foot,
onFoot IT

Temat: Quartz czy OpenGL

Quartz OpenGLowi udostępnia bufor (opakowany przez CALayer, którego CAEAGLLayer jest implementacją dla OpenGL właśnie) po którym sobie może renderować, w tym przypadku za pomocą sprzętu. Quartz jest ogólnie w uproszczeniu dostawcą bitmap, na których się coś rysuje. Wykorzystuje on GPU do wypluwania tych bitmap na ekran. Dlatego np. przesuwanie widoków czy przewijanie jest takie płynne, bo polega ono w gruncie rzeczy na przesuwaniu quada, reprezentującego ten bufor, po buforze ramki układu graficznego.

Funkcje rysowania figur, te z przedrostkiem CG, które umieszczamy na przykład w drawRect są wykonywane programowo.Maciej R. edytował(a) ten post dnia 18.01.13 o godzinie 10:22

konto usunięte

Temat: Quartz czy OpenGL

dzięki za info.
Maciej R.:
Quartz OpenGLowi udostępnia bufor (opakowany przez CALayer, którego CAEAGLLayer jest implementacją dla OpenGL właśnie) po którym sobie może renderować, w tym przypadku za pomocą sprzętu. Quartz jest ogólnie w uproszczeniu dostawcą bitmap, na których się coś rysuje. Wykorzystuje on GPU do wypluwania tych bitmap na ekran. Dlatego np. przesuwanie widoków czy przewijanie jest takie płynne, bo polega ono w gruncie rzeczy na przesuwaniu quada, reprezentującego ten bufor, po buforze ramki układu graficznego.

Funkcje rysowania figur, te z przedrostkiem CG, które umieszczamy na przykład w drawRect są wykonywane programowo.

Następna dyskusja:

Aplikacje mobilne w C++ i O...




Wyślij zaproszenie do