Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Stare aplikacje w nowej rozdzielczości iPhone4


  • Zaloguj się, aby dodać odpowiedź
26 odpowiedzi w tym temacie

#1 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 22 czerwca 2010 - 00:27

Jak to teraz będzie z aplikcjami w iPhone4? Na iPad istniejące aplikacje są odpalane albo na małym ekranie w naturalnej rozdzielczości albo przeskalowane. A jak to jest na iPhone4? Wszystko się samo przeskaluje? Jeżeli na przykład w tej chwili dotykowe joysticki (takie typowe koła) w mojej grze mają promieć 48 pixeli na ekranie 480x320 to na ekranie 960x640 będą stanowczo za małe. Oznacza to, że powinienem trochę przerobić aplikację i nie używać w tym przypadku zahardcodowanych wielkości w pixelach tylko jako procent ekranu. No ale to tylko w przypadku ekranów 3,5 cala, bo na przykład w iPadzie nie może to być taki procent ekranu, bo takie koło będzie stanowczo za duże.

Widzę, że w UIScreen w iOS4 jest coś takiego:

scale
The natural scale factor associated with the screen. (read-only)
@property(nonatomic,readonly) CGFloat scale
Discussion
This value reflects the scale factor needed to convert from the default logical coordinate space into the device coordinate space of this screen. The default logical coordinate space is measured using points, where one point is approximately equal to 1/160th of an inch. If a device’s screen has a reasonably similar pixel density, the scale factor is typically set to 1.0 so that one point maps to one pixel. However, a screen with a significantly different pixel density may set this property to a higher value.
Availability
* Available in iPhone OS 4.0 and later.
Declared In
UIScreen.h

Opis nowego UIScreen jest tutaj.

#2 pio11

pio11
  • 1 700 postów

Napisano 22 czerwca 2010 - 00:43

Też się nad tym zastanawiałem. Jutro mam wysłać swoją pierwszą aplikację do AS i myślałem o zrobieniu wersji na iP 4. Jednak czy to jest sens. Ekrany we wszystkich iP są takie same (w sensie rozmiaru). Czyli program robiony pod mniejszą rozdzielczość (np. na iPhone 3G) na iPhone 4G powinien wyglądać tak samo jak na iPhone 3G.

#3 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 22 czerwca 2010 - 01:03

Ja zazwyczaj używam wartości typu 10% szerokości ekranu zamiast np. 32 pixele. Ale w przypadku różnych elementów HUD jednak trzymam się pixeli. Poza tym na dużym ekranie iPada to się nie sprawdza, bo wszystko wtedy jest zbyt duże. Muszę sobie opracować jakąś metodę. Ale do tego muszę jakoś rozpoznawać na czym aplikacja została uruchomiona.

#4 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 22 czerwca 2010 - 02:46

@MDW. Ku mojemu zaskoczeniu, nie trzeba robić niewiadomo czego z aplikacjami. Uff, nie trzeba przebudowywać interfejsu, jeżeli nie ustawiło się autoresizingu itp. Jedyna rzecz, którą musisz zmienić to obrazki. Wszelkie elementy interfejsu są automatycznie polepszone wizualnie. Dotychczas miałeś obrazek powiedzmy Dashboard.png. Otwierasz swój projekt i dodajesz do niego w dwa razy większej rozdzielczości obrazek o nazwie Dashboard@2x.png . iPhone 4 automatycznie załaduje obrazki, które dodatkowo występują z postfixem @2x. Na pozostałych urządzeniach pliki nie będą zajmować niepotrzebnie cennej pamięci, tylko zostaną wykorzystane te 2x prostsze.

#5 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 22 czerwca 2010 - 07:44

Dzięki za informację o tym 2x. To całkiem sympatyczne rozwiązanie. W świecie androidowym by się za bardzo nie przyjęło, bo tam jest milion różnych urządzeń z dziwnymi rozdzielczościami. Ale w świecie Apple, gdzie jedna firma decyduje o całym sprzęcie i systemie to jest jak najbardziej ok. Fajnie. :)

Orientujesz się może czy ten sposób z @2x zadziała na iPadzie? Gdy aplikacja zostanie zainstalowana na iPadzie to który plik zostanie użyty: obrazek.png czy obrazek@2x.png?


Ja mam trochę więcej problemów, bo cały GUI robię sam. Niezależnie od komponentów/kontrolek iOS. Generalnie radzę sobie z różnymi rozdzielczościami, bo tego typu problemy są moimi problemami od lat (Java2ME i setki urządzeń). Ale w przypadku iPhone2/3 i 4 oraz iPada powstała trochę niejednoznaczna sytuacja. Przykład...

W iPhone3G mam sobie przycisk w postaci kwadracika 32x32 pixele. W iPadzie taki sam przycisk jest ok, bo chociaż ma większą rozdzielczość to ekran też ma większy więc PPI (pixel per inch) wychodzi podobnie i użytkownik widzi mniej więcej podobnej wielkości przycisk. No a jak taki sam przycisk 32x32 pixele narysuję na iPhone4, który ma ekran tej samej wielkości ale rozdzielczość 2x większą (sporo PPI) to użytkownik zobaczy przycisk zdecydowanie zbyt mały. Wobec tego powinienem posługiwać się raczej procentem rozmiarów ekranu niż konkretnymi wartościami (pixele). No ale nie na iPadzie, bo tam wtedy wszystko wyszłoby za duże. No i trochę mi się zaczyna kod dwoić. :)

W związku z tym mam pytanie. Czy mogę jakoś rozpoznać na czym została uruchomiona aplikacja? Zależy mi na odróżnieniu urządzeń 480x320 (iPhone2G/3G/3GS, iPod1/2/3) od iPada i od iPhone4. Mogę zrobić to trochę po lamersku rozpoznając po rozdzieczlości ekranu. :) Ale to naprawdę mało eleganckie. :) iPada mogę odróżnić też tak:

if( UIUserInterfaceIdiomPad == UI_USER_INTERFACE_IDIOM() )
{
// display iPad UI
}
else
{
// display iPhone/iPod touch UI
}

A mogę jakoś tak zindentyfikować iPhone4?

Najlepiej byłoby gdybm mógł się dostać do informacji ile DPI (czy raczej PPI) ma ekran urządzenia na którym została odpalona aplikacja. Wtedy mógłbym zrobić wszystko uniwersalnie i wszystko pięknie bym sobie poobliczał tak, że w przyszłości bez jakichkolwiek modyfikacji wszystko byłoby ok na każdej maszynie. A może jest taka możliwość? :)

#6 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 22 czerwca 2010 - 11:11

Tylko wyświetlacz Retina ma @2x. Podejrzewam jednak, że niedługo Apple tak przerobi iPada, że aplikacje, w momencie użycia przycisku 2x też zostaną wygładzone jeżeli chodzi o elementy interfejsu standardowego i tak samo zostaną wygładzone obrazki. Ale to tylko podejrzenia. Wraz ze wzrostem ilości różnych sprzętów, iPody, iPhone'y jest coraz mniejszy sens identyfikować urządzenie na którym aplikacja jest uruchomiona. Bardziej należy skupić się na sprawdzeniu jakie cechy są konieczne, lub czasami wykorzystywane na urządzeniach - kamerka, GPS itp. Wczoraj troszkę googlowania i wszystko bez problemu się udało znaleźć.

#7 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 22 czerwca 2010 - 11:37

Wraz ze wzrostem ilości różnych sprzętów, iPody, iPhone'y jest coraz mniejszy sens identyfikować urządzenie na którym aplikacja jest uruchomiona. Bardziej należy skupić się na sprawdzeniu jakie cechy są konieczne, lub czasami wykorzystywane na urządzeniach - kamerka, GPS itp. Wczoraj troszkę googlowania i wszystko bez problemu się udało znaleźć.


Masz 101% racji. Tylko tak należy robić. Jednak co zrobić gdy nie za bardzo da się sprawdzić PPI danego urządzenia i nie wiem czy duża rozdzielczość (1024x768 albo 960x640) jest na ekranie 3,5 cala czy prawie 10 cali. Przynajmniej ja nie potrafię tego sprawdzić. Gdybym tylko to wiedział to spokojnie mógłbym robić uniwersalne aplikacje nawet bez użycia ich kontrolek.

#8 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 22 czerwca 2010 - 11:51

W najnowszym XCodzie jest opcja tworzenia uniwersalnej aplikacji - co prawda tylko do szablonu Window, czyli najbardziej gołej aplikacji, ale nie ma rzadnego problemu, aby rozszerzyć ją o kontroler widoku/nawigacji/zakładek itp. Od razu masz AppDelegate_iPhone i App_Delegate_iPad i to są punkty startowe dla aplikacji uruchamianych na ekranach 3,5 lub 10 cali. Troszkę kombinowania i bez problemu tworzy się elementy stałe w oddzielnych plikach dla obu urządzeń. W większości przypadków dobrze zaprojektowana aplikacja wymaga praktycznie zmian w plikach interfejsu - tworzyć dodatkowe XIB dla jednego lub drugiego urządzenia. Zapomnij w ogóle o fakcie, że iPhone 4 ma rozdzielczość 960x640. Pliki XIB tak samo jak wczezśniej tworzone są dla rozdzielczości 480x320. Tekst jest automatycznie sam wygładzany, elementy interfejsu Apple tak samo wygładzane, jedynie co musisz przygotować (jeżeli chcesz) to drugą wersję obrazków z postfixem @2x.

#9 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 22 czerwca 2010 - 12:02

No tak, różnice między iPhone4 i iPhone2/3 mi nie przeszkadzają. Ale iPada wolałbym zidentyfikować. A jeżeli chodzi o automat to wszystko jest takie fajne w przypadku aplikacji z GUI iPhonowym. Jak się ma własny to trzeba mieć trochę informacji żeby go dostosować do rozdzielczości. No i to 'pixel per inch' by mi się przydało.

#10 demarca

demarca
  • 301 postów
  • SkądLegnica

Napisano 22 czerwca 2010 - 12:07

Zapomnij w ogóle o fakcie, że iPhone 4 ma rozdzielczość 960x640. Pliki XIB tak samo jak wczezśniej tworzone są dla rozdzielczości 480x320. Tekst jest automatycznie sam wygładzany, elementy interfejsu Apple tak samo wygładzane, jedynie co musisz przygotować (jeżeli chcesz) to drugą wersję obrazków z postfixem @2x.


Aaaa, czyli zwiększyli rozdzielczość ekranu, ale digitizera już nie? Pozycję kliknięcia i położenia obiektów wciąż określamy jak dla 480x320?
To rzeczywiście upraszcza sprawę.

Czyli wystarczy stary podział iPad/iPhone/iPod (wykrywany np. przez [UIDevice currentDevice].model) i dodatkowe grafiki @2x, tak?

#11 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 22 czerwca 2010 - 12:21

Aaaa, czyli zwiększyli rozdzielczość ekranu, ale digitizera już nie? Pozycję kliknięcia i położenia obiektów wciąż określamy jak dla 480x320?
To rzeczywiście upraszcza sprawę.


Naprawdę tak jest? Czyli ja nie mogę kliknąć z dokładnością co do 1 pixela? Hmmm... dziwne. To może i upraszcza ale i zmniejsza możliwości. Trochę takie przejściowe rozwiązanie. I trochę niezbyt ładne. :(

#12 demarca

demarca
  • 301 postów
  • SkądLegnica

Napisano 22 czerwca 2010 - 12:39

Naprawdę tak jest? Czyli ja nie mogę kliknąć z dokładnością co do 1 pixela? Hmmm... dziwne. To może i upraszcza ale i zmniejsza możliwości. Trochę takie przejściowe rozwiązanie. I trochę niezbyt ładne. :(


W sumie to tylko gdybanie, sprawa wyjaśni się pewnie już niedługo.
Wygląda na to, że zachowując maksymalną kompatybilność ze starymi urządzeniami 480x320, zmienili tylko/aż jakość samej grafiki.

#13 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 24 czerwca 2010 - 12:43

ale żeby developerzy google nie lubili...
icon universal iphone ipad - Google Search

jako, że właśnie kończę projekt, mogę od razu potwierdzić informacje
w pliku [nazwaprojektu]-Info.plist dodajesz wpis o nazwie CFBundleIconFiles , autoamtycznie powinien zmienić się na tablicę o uproszczonej nazwie Icon files
dodajesz do niego 2 lub 3 wpisy wpisując dowolne nazwy swoich ikonek, u siebie mam Icon_iPad.png Icon_iPhone.png Icon_iPhone4.png . Nie ma różnicy w kolejności w jakiej je wpisujesz. System automatycznie wybierze tę dobrej rozdzielczości.

Jeżeli aplikacja może być uruchamiana na wcześniejszym sofcie niż SDK 3.2 możesz dodać jeszcze CFBundleIconFile z nazwą ikonki dla iPhonów/iPodów touch bo inne urządzenia nie będą mogły uruchomić tego softu.

Odpowiadając na poprzednie posty, które też bardzo można łatwo eksperymentalnie sprawdzić, tak wygląda identyfikacja współrzędnych dotyku na iPhonie 4:
2010-06-24 13:40:43.151 testtouch[45340:207] 303.000000x457.000000
2010-06-24 13:40:44.479 testtouch[45340:207] 303.500000x458.500000
2010-06-24 13:40:45.967 testtouch[45340:207] 304.500000x456.500000
2010-06-24 13:40:46.423 testtouch[45340:207] 304.500000x456.500000
2010-06-24 13:40:46.815 testtouch[45340:207] 304.500000x456.500000
2010-06-24 13:40:52.931 testtouch[45340:207] 319.500000x451.500000
2010-06-24 13:40:54.171 testtouch[45340:207] 316.000000x451.000000
jest to mniej-więcej dolny prawy róg i jak widzimy w konsoli mamy raz na jakiś czas połówkowe wartości, których nigdy wcześniej nie było.

#14 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 24 czerwca 2010 - 12:56

ale żeby developerzy google nie lubili...
Odpowiadając na poprzednie posty, które też bardzo można łatwo eksperymentalnie sprawdzić, tak wygląda identyfikacja współrzędnych dotyku na iPhonie 4:

2010-06-24 13:40:43.151 testtouch[45340:207] 303.000000x457.000000
2010-06-24 13:40:44.479 testtouch[45340:207] 303.500000x458.500000
2010-06-24 13:40:45.967 testtouch[45340:207] 304.500000x456.500000
2010-06-24 13:40:46.423 testtouch[45340:207] 304.500000x456.500000
2010-06-24 13:40:46.815 testtouch[45340:207] 304.500000x456.500000
2010-06-24 13:40:52.931 testtouch[45340:207] 319.500000x451.500000
2010-06-24 13:40:54.171 testtouch[45340:207] 316.000000x451.000000
jest to mniej-więcej dolny prawy róg i jak widzimy w konsoli mamy raz na jakiś czas połówkowe wartości, których nigdy wcześniej nie było.


Wielkie dzięki za ten test! Ja niestety od trzech dni próbuję zrobić update mojego iPhone3G do iOS4 i ciągle nie mogę skończyć archiwizacji (nawet 6.5 godziny już czekałem).

Połówkowe wartości? Hmmmm... ale kombinują. No to ciekawe co mi wyświetli jak sprawdzę wysokość i szerokość ekranu. Trochę to dziwne. Nigdy się z czymś takim w jakichkolwiek innych urządzeniach mobilnych nie spotkałem. Ech...

No ale dzięki temu chyba wszystkie istniejące aplikacje będą ok na iPhone4. Zobaczymy...

#15 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 24 czerwca 2010 - 13:15

Wielkie dzięki za ten test! Ja niestety od trzech dni próbuję zrobić update mojego iPhone3G do iOS4 i ciągle nie mogę skończyć archiwizacji (nawet 6.5 godziny już czekałem).

Test wykonany na Symulatorze. Nie mam (jeszcze) iPhone 4. Na Twoim iPhonie 3G, czy jakiekolwiek inne urządzenie masz Apple, które nie jest najnowszym iPhonem, nigdy *,5 nie uzyskasz jeżeli chodzi o dotyk.

Nie wiem czemu narzekacie na sam fakt, że Apple rozwiązało to w ten sposób. Wg mnie rozwiązanie jest genialne. Przede wszystkim developerzy, którzy zrobili już aplikację i jest ona w App Store a jest ich tam ćwierć miliona, (dobrze pamiętam z WWDC?) i np. nie ustawiliby, że Tabela ma automatycznie poszerzać się w pionie i poziomie, otrzymali by dwa razy mniejszą tabelę umieszczoną w górnym lewym rogu ekranu z pustą przestrzenią w 3 pozostałych ćwiartkach. Ale to tylko jest niedopatrzenie i ukłon w stronę programistów. Tak samo w przypadku domyślny infobuttona bez poszerzenia jego ramki dotyku zmniejszyłby się dwukrotnie (czterokrotnie jeżeli chodzi o pole powierzchni) byłoby nie lada wyczynem "trafienie w niego".

Z drugiej strony rozdzielczość na iPhonie 4 jest taka wielka, że nawet symulator iPhone aby człowiek widział różnice w grafice jest rozmiarem taki sam jak symulator iPada. Wątpie aby ktokolwiek z Was miał monitor o takiej gęstości px. Zmiana rozdzielczości w iPhonie 4.0 raczej nie ma na celu budowania bardziej zaawansowanych aplikacji, a bardziej przejrzystych, ładniejszych, łagodniejsze, wyraźniejsze dla oka.

Ekran dotykowy w iPhonie wciąż pozostaje ekranem dotykowym niezależnie czy mamy model 3G czy 4. Nasze palce pozostają tego samego rozmiaru więc nasze "manualne możliwości" korzystania z iPhone pozostają takie same.

Owszem, mamy rozdzielczość 640x960 zamiast 320x480, ale wciąż dysponujemy ekranem o takim samym rozmiarze 3.5". Nie upchniemy na nim więcej przycisków.

Prawdę mówiąc sam się aż bałem, że mogą zmienić rozdzielczość iPhone 2x i rozwiązać to w ten sposób, który chcielibyście uznać za słuszny, ale odetchnąłem kiedy zrozumiałem jak to działa.
Tyle jeżeli chodzi o przyciski, jednak, jeżeli rysujemy na iPhonie palcem, tak jak przedstawiłem mamy połówkowe wartości dzięki czemu nasze krawędzie będą bardziej dokładne.

Wszystko, czy coś trzeba sprostować?

#16 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 24 czerwca 2010 - 13:27

Wszystko, czy coś trzeba sprostować?


Wszystko jasne. Jestem Ci niezmiernie wdzięczny za sprawdzenie. Ja jestem akurat w trakcie przerabiania swojej gierki na dużą rozdzielczość. No ale z tego co widzę dzięki rozwiązaniu Apple nie muszę tego robić. Dłużej się zastanowiłem i naprawdę to wszystko zadziała (przypominam, że wszystko rysuję sam w OpenGL i nie korzystam z kontrolek/GUI). Im dłużej o tym myślę (w świetle przyszłych urządzeń o jeszcze innej rozdzielczości) tym bardziej mi się to rozwiązanie podoba. Jeszcze się wstrzymam przed użyciem określenia "genialne" ale naprawdę zaczyna mi się podobać.

Trochę marudziłem, bo jestem przyzwyczajony do tego co robi cały świat, czyli normalnej zmiany rozdzielczości. Ale to kurcze... jest chyba fajne. :) Dlaczego to zawsze Apple wpada na genialne pomysły? :)

Dzięki raz jeszcze!

#17 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 24 czerwca 2010 - 13:30

Dlaczego to zawsze Apple wpada na genialne pomysły? :)

żeby użytkownicy wykop.pl śmiali się jakimi to jesteśmy leszczami, że zapłaciliśmy 3 razy tyle za sprzęt, żeby się lansować i być uważany za kozaka, mimo, że oni mają to samo w swoich PC tylko data premiery późniejsza :).

#18 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 28 czerwca 2010 - 07:15

Wreszcie mam iPhoneSDK 4.0 i iSO 4.0 w swoim iPhone3G. No i przyznam się, że nie bardzo rozumiem idei obsługi tej nowej rozdzielczości. Nie mam pojęcia jak naprawdę zrobić coś w 960x640. Rozumiem to, że jak się zrobi dwa razy większą teksturę do nazwy doda "@2x" to na maszynach z dużą rozdzielczością zostanie ona wczytana zamiast tej standardowej. To jest ok i jest fajne. Jednak jak odpaliłem sobie moją starą aplikację pisaną pod OpenGL ES na symulatorze iPhone4 i użyłem zoom 100% to widzę, że to wszystko jest w niskiej rozdzielczości. I nie chodzi mi o teksturowane rzeczy, bo to oczywiste. Ale to co rysuję zwykłymi nieteksturowanymi liniami czy trójkątami tez jest w 480x320. To widać wyraźnie. Jak ma to rozumieć? Drugi dowód tej niskiej rozdzielczości jest taki, że aplikacja w symulatorze iPhone4 chodzi idealnie szybko na moim MacBooku, a w symulatorze iPada tragicznie wolno (kilka FPS). No w końcu ich ekrany nie różnią się tak bardzo (1024x768 vs 960x640). W takim razie powstaje pytanie: Jak uzyskać prawdziwą rozdzielczość iPhone4?

#19 _krzysiek

_krzysiek
  • 1 971 postów
  • SkądŁódź

Napisano 29 czerwca 2010 - 07:36

@MDW jak pewnie już wiesz ja z OpenGL nie mam nic wspólnego. Co ciekawe, OpenGL to nie jest kwestia programowania w Objective-C a C/C++, prawda? Na 100% tak dzieje się w przypadku obrazków, bo już to sprawdziłem.

#20 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 29 czerwca 2010 - 07:45

@MDW jak pewnie już wiesz ja z OpenGL nie mam nic wspólnego. Co ciekawe, OpenGL to nie jest kwestia programowania w Objective-C a C/C++, prawda?


Raczej tylko C (nie C++). OpenGL jest ciągle oparty na starej nieobiektowej filozofii i jest to po prostu wywoływanie prostych funkcji jak w klasycznym C. Nawet w Javie (np. Android) jest to tak samo zrobione tylko, że te funkcje są po prostu metodami jakiejś klasy GL. No a czystego C można używać w kodzie Objective-C bez żadnych tricków. Zresztą OpenGL używa się w iOS tak samo jak OpenAL.


Na 100% tak dzieje się w przypadku obrazków, bo już to sprawdziłem.


No tak, obrazek w dobrej rozdziałce się wczyta na iPhone4, ale sam trójkąt zostanie narysowany w gorszej rozdzielczości. Przynajmniej w symulatorze. Dziwne to jest. :(

#21 slaj

slaj
  • 254 postów

Napisano 30 czerwca 2010 - 07:47

Rozumiem to, że jak się zrobi dwa razy większą teksturę do nazwy doda "@2x" to na maszynach z dużą rozdzielczością zostanie ona wczytana zamiast tej standardowej.


Nie wiem jak wczytujesz teksturę, ale jeżeli tak jak na (większości) przykładów dostępnych w sieci, tj. załadować teksturę z pliku/resources i przekopiować ją do przygotowanego bufora OpenGL, to ciekawi mnie czy ta sztuczka z "@2x" zadziała. Wydawało mi się, że to chyba dotyczy tylko Cococa i xib. To by wyjaśniało dlaczego przy zoom 100% nadal jest stara rozdzielczość. Nie sprawdzałem tego jeszcze, no i nie wiem jak wczytujesz bitmapę ;-)

#22 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 30 czerwca 2010 - 08:27

Nie wiem jak wczytujesz teksturę, ale jeżeli tak jak na (większości) przykładów dostępnych w sieci, tj. załadować teksturę z pliku/resources i przekopiować ją do przygotowanego bufora OpenGL, to ciekawi mnie czy ta sztuczka z "@2x" zadziała. Wydawało mi się, że to chyba dotyczy tylko Cococa i xib. To by wyjaśniało dlaczego przy zoom 100% nadal jest stara rozdzielczość. Nie sprawdzałem tego jeszcze, no i nie wiem jak wczytujesz bitmapę ;-)


No to na razie zapomnijmy o teksturze. Załóżmy, że rysuję przy pomocy funkcji OpenGL zwykłe nieteksturowane linie (druciaki). One też są w starej rozdzielczości. Nie widzę możliwości narysowania linii w rozdzielczości 960x640.

#23 demarca

demarca
  • 301 postów
  • SkądLegnica

Napisano 30 czerwca 2010 - 20:04

Na 100% tak dzieje się w przypadku obrazków, bo już to sprawdziłem.


To ja zapytam jeszcze o jeden szczegół, może ktoś przetestował. Czy "@2x" zadziała nawet jeżeli aplikacja powstanie w SDK 3.2.2 z "deployment target 3.0"?
Chciałbym zachować obsługę 3.0, ale nie mam jak sprawdzić, czy iP4 mimo to załaduje odpowiednie pliki (są wrzucone do Library).
A może ktoś tutaj jest już szczęśliwym posiadaczem iP4? :)

#24 demarca

demarca
  • 301 postów
  • SkądLegnica

Napisano 01 lipca 2010 - 12:09

Sam sobie odpowiem, bo wszystko działa po przetestowaniu na fizycznym urządzeniu (pomogli koledzy z forum). Z tym że kompilowałem w SDK 3.2.3, z deployment target 3.0 Co do rozdzielczości w OpenGL, widziałem odpowiedni podrozdział w nowym Developer's Guide chyba (przekopywałem się przez różną dokumentację i nie pamiętam na 100%).

#25 MDW

MDW
  • 653 postów
  • SkądPolska

Napisano 01 lipca 2010 - 12:48

Co do rozdzielczości w OpenGL, widziałem odpowiedni podrozdział w nowym Developer's Guide chyba (przekopywałem się przez różną dokumentację i nie pamiętam na 100%).


Masz rację. Wczoraj właśnie trafiłem na rozdział "Drawing High-Resolution Content Using OpenGL ES" w nowym iPhone Application Programming Guide. Jest tam wszystko wyjaśnione chyba wystarczająco dokładnie. Na razie jednak wolę nie ruszać tak dużej rozdziałki, bo trudno mi przewidzieć jaka będzie prędkość. I tak mam stracha o iPada, który w końcu ma nawet jeszcze trochę większą rozdzielczość niż iPhone4. Muszę gdzieś skombinować iPada do sprawdzenia. Ale to nie jest takie proste... :(




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych