Skip to content

Commit 91efcfb

Browse files
committed
iphone tweaks
1 parent d676bcc commit 91efcfb

File tree

3 files changed

+64
-26
lines changed

3 files changed

+64
-26
lines changed

panda/src/glstuff/glGraphicsStateGuardian_src.cxx

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,11 @@ reset() {
10081008
_glBlendColor = null_glBlendColor;
10091009
}
10101010

1011+
#ifdef OPENGLES_1
1012+
_edge_clamp = GL_REPEAT;
1013+
#else
10111014
_edge_clamp = GL_CLAMP;
1015+
#endif
10121016
if (has_extension("GL_SGIS_texture_edge_clamp") ||
10131017
is_at_least_version(1, 2)) {
10141018
_edge_clamp = GL_CLAMP_TO_EDGE;
@@ -5514,31 +5518,48 @@ get_internal_image_format(Texture *tex) const {
55145518
} else {
55155519
return GL_DEPTH_COMPONENT;
55165520
}
5521+
55175522
case Texture::F_rgba:
55185523
case Texture::F_rgbm:
55195524
return GL_RGBA;
55205525
case Texture::F_rgba4:
55215526
return GL_RGBA4;
5527+
5528+
#ifdef OPENGLES_1
5529+
case Texture::F_rgba8:
5530+
case Texture::F_rgba12:
5531+
case Texture::F_rgba16:
5532+
case Texture::F_rgba32:
5533+
return GL_RGBA;
5534+
#else
55225535
case Texture::F_rgba8:
55235536
return GL_RGBA8;
55245537
case Texture::F_rgba12:
55255538
return GL_RGBA12;
5526-
55275539
case Texture::F_rgba16:
55285540
return GL_RGBA16F_ARB;
55295541
case Texture::F_rgba32:
55305542
return GL_RGBA32F_ARB;
5543+
#endif // OPENGLES_1
55315544

55325545
case Texture::F_rgb:
55335546
return GL_RGB;
55345547
case Texture::F_rgb5:
55355548
return GL_RGB5;
55365549
case Texture::F_rgba5:
55375550
return GL_RGB5_A1;
5551+
5552+
#ifdef OPENGLES_1
5553+
case Texture::F_rgb8:
5554+
case Texture::F_rgb12:
5555+
return GL_RGB;
5556+
#else
55385557
case Texture::F_rgb8:
55395558
return GL_RGB8;
55405559
case Texture::F_rgb12:
55415560
return GL_RGB12;
5561+
#endif // OPENGLES_1
5562+
55425563
case Texture::F_rgb332:
55435564
return GL_R3_G3_B2;
55445565

panda/src/iphone/eaglView.mm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
#import "EAGLView.h"
1919

20-
#define USE_DEPTH_BUFFER 0
20+
#define USE_DEPTH_BUFFER 1
2121

2222
// A class extension to declare private methods
2323
@interface EAGLView ()
@@ -93,6 +93,7 @@ - (BOOL)createFramebuffer {
9393
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
9494
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight);
9595
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
96+
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
9697
}
9798

9899
if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) {

panda/src/iphone/pview_delegate.mm

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,46 @@ @implementation ControllerDemoAppDelegate
2424
@synthesize animationInterval;
2525

2626
PandaFramework framework;
27-
int startup = 0;
2827

2928
- (void)applicationDidFinishLaunching:(UIApplication *)application {
30-
animationInterval = 1.0 / 60.0;
29+
ConfigVariableString pview_args("pview-args", "");
30+
int argc = pview_args.get_num_words() + 1;
31+
typedef char *charp;
32+
char **argv = new charp[argc + 1];
33+
argv[0] = (char *)"pview";
34+
for (int i = 1; i < argc; ++i) {
35+
cerr << i << ". " << pview_args.get_word(i - 1) << "\n";
36+
argv[i] = strdup(pview_args.get_word(i - 1).c_str());
37+
}
38+
argv[argc] = NULL;
39+
40+
framework.open_framework(argc, argv);
41+
42+
WindowFramework *window = framework.open_window();
43+
if (window != (WindowFramework *)NULL) {
44+
window->enable_keyboard();
45+
window->setup_trackball();
46+
framework.get_models().instance_to(window->get_render());
47+
48+
if (argc < 2) {
49+
window->load_default_model(framework.get_models());
50+
} else {
51+
window->load_models(framework.get_models(), argc, argv);
52+
}
53+
int hierarchy_match_flags = PartGroup::HMF_ok_part_extra |
54+
PartGroup::HMF_ok_anim_extra;
55+
window->loop_animations(hierarchy_match_flags);
56+
57+
window->center_trackball(framework.get_models());
58+
59+
ConfigVariableBool want_pstats("want-pstats", false);
60+
if (want_pstats) {
61+
PStatClient::connect();
62+
}
63+
}
64+
65+
ConfigVariableDouble timer_fps("timer-fps", 60.0);
66+
animationInterval = 1.0 / timer_fps;
3167
[self startAnimation];
3268
}
3369

@@ -57,28 +93,8 @@ - (void)setAnimationInterval:(NSTimeInterval)interval {
5793
}
5894

5995
- (void)drawView {
60-
if (startup == 0) {
61-
int argc = 0;
62-
char **argv = NULL;
63-
framework.open_framework(argc, argv);
64-
startup = 1;
65-
66-
} else if (startup == 1) {
67-
WindowFramework *window = framework.open_window();
68-
if (window != (WindowFramework *)NULL) {
69-
window->enable_keyboard();
70-
window->setup_trackball();
71-
framework.get_models().instance_to(window->get_render());
72-
73-
window->load_default_model(framework.get_models());
74-
window->center_trackball(framework.get_models());
75-
}
76-
startup = 2;
77-
78-
} else {
79-
Thread *current_thread = Thread::get_current_thread();
80-
framework.do_frame(current_thread);
81-
}
96+
Thread *current_thread = Thread::get_current_thread();
97+
framework.do_frame(current_thread);
8298
}
8399

84100
- (void)dealloc {

0 commit comments

Comments
 (0)