From 2f596f4d501b4b20ff4c20f02a84b20cb7c3f36d Mon Sep 17 00:00:00 2001 From: kts Date: Wed, 26 Feb 2014 16:36:12 -0800 Subject: [PATCH] Fixed PTime on OS X. OpenGL performance still terrible on OS X. --- engine/sdl/interface.c | 2 + engine/sdl/r_gl.c | 30 ++- engine/sdl/r_soft.c | 4 +- engine/sdl/timer.c | 23 ++- .../timesynk.pbxindex/cdecls.pbxbtree | Bin 618708 -> 618708 bytes .../timesynk.pbxindex/decls.pbxbtree | Bin 619264 -> 619264 bytes .../timesynk.pbxindex/files.pbxbtree | Bin 6876 -> 6876 bytes .../timesynk.pbxindex/imports.pbxbtree | Bin 19684 -> 19684 bytes .../timesynk.pbxindex/pbxindex.header | Bin 24 -> 24 bytes .../timesynk.pbxindex/refs.pbxbtree | Bin 447196 -> 447196 bytes .../strings.pbxstrings/control | Bin 1048596 -> 1048596 bytes .../strings.pbxstrings/strings | Bin 1218336 -> 1218494 bytes .../timesynk.pbxindex/symbols0.pbxsymbols | Bin 3890632 -> 3890632 bytes xcode/timesynk.xcodeproj/kts.mode1v3 | 84 ++++---- xcode/timesynk.xcodeproj/kts.pbxuser | 192 +++++++++++------- 15 files changed, 192 insertions(+), 143 deletions(-) diff --git a/engine/sdl/interface.c b/engine/sdl/interface.c index e02799e..078c1cf 100644 --- a/engine/sdl/interface.c +++ b/engine/sdl/interface.c @@ -50,6 +50,7 @@ int interfaceInit() { tick_time.n = (1000000000/25); tick_time.m = tick_time.n/1000000; tick_time.s = 0; + g_cap_framerate = 1; g_accumulator = 0; vid_frames = 0; @@ -103,6 +104,7 @@ int interfaceRun() { while(g_accumulator >= tick_time.n) { // handle input and pass to state while(SDL_PollEvent(&event)) { + printf("EVENT\n"); switch(event.type) { case SDL_KEYDOWN: ts_event.type = TS_KEYBOARD; diff --git a/engine/sdl/r_gl.c b/engine/sdl/r_gl.c index 4f36941..eb6c771 100644 --- a/engine/sdl/r_gl.c +++ b/engine/sdl/r_gl.c @@ -29,6 +29,11 @@ void r_gl_Init() { glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); + + /* enable transparency */ + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + /* spritesheets */ r_gl_createTexture(&(spritesheet_ui->texture), spritesheet_ui->surface); r_gl_createTexture(&(menu_bg->texture), menu_bg->surface); @@ -136,9 +141,6 @@ void r_gl_renderText(struct Font *font, const char *string, int x, int y) { /* draw a clipped portion of our font texture to a quad*/ glTranslated(x+x_render, y+y_render, 1.0f); //glTranslated(font->width, y_render, 0.0f); - /* enable transparency */ - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); /* draw that quad !*/ glBegin(GL_QUADS); // tl @@ -163,25 +165,21 @@ void r_gl_renderText(struct Font *font, const char *string, int x, int y) { } void r_gl_renderSprite(struct Spritesheet *sheet, SDL_Surface *surface, int id, int x, int y) { - int x_offset, y_offset; - /* get the width and height of each sprite in gl texture terms */ - double sx = 1.0f/(sheet->surface->w / sheet->width); - double sy = 1.0f/(sheet->surface->h / sheet->height); - glBindTexture(GL_TEXTURE_2D, sheet->texture); + float sx = 1.0f/(sheet->surface->w / sheet->width); + float sy = 1.0f/(sheet->surface->h / sheet->height); - y_offset = id / sheet->columns; - x_offset = id - (y_offset*sheet->columns); + int y_offset = id / sheet->columns; + int x_offset = id - (y_offset*sheet->columns); /* get the texture offsets for the target sprite */ - double tx = (x_offset == 0 ? 0.0f : 1.0f/((float)(sheet->columns/x_offset))); - double ty = (y_offset == 0 ? 0.0f : 1.0f/((sheet->surface->w/sheet->width)/y_offset)); + float tx = (x_offset == 0 ? 0.0f : 1.0f/((float)(sheet->columns/x_offset))); + float ty = (y_offset == 0 ? 0.0f : 1.0f/((sheet->surface->w/sheet->width)/y_offset)); /* reset view */ glLoadIdentity(); + /* bind our texture */ + glBindTexture(GL_TEXTURE_2D, sheet->texture); /* draw a clipped portion of our sheet texture to a quad*/ glTranslated(x, y, 0.0f); - /* enable transparency */ - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); /* draw that quad !*/ glBegin(GL_QUADS); // tl @@ -194,7 +192,7 @@ void r_gl_renderSprite(struct Spritesheet *sheet, SDL_Surface *surface, int id, glTexCoord2d(tx,ty+sy); glVertex2f(0,sheet->height*sheet->scale_y); glEnd(); - glLoadIdentity(); + //glLoadIdentity(); } diff --git a/engine/sdl/r_soft.c b/engine/sdl/r_soft.c index e4678a5..4ab7342 100644 --- a/engine/sdl/r_soft.c +++ b/engine/sdl/r_soft.c @@ -7,12 +7,12 @@ #include "../globals.h" void r_soft_Init() { - if ((screen = SDL_SetVideoMode(g_video_width, g_video_height, 32, SDL_SWSURFACE|SDL_DOUBLEBUF|SDL_RESIZABLE|g_video_fullscreen)) == NULL) + if ((screen = SDL_SetVideoMode(g_video_width, g_video_height, 32, SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_RESIZABLE|g_video_fullscreen)) == NULL) return; } void r_soft_Reinit() { - if ((screen = SDL_SetVideoMode(g_video_width, g_video_height, 32, SDL_SWSURFACE|SDL_DOUBLEBUF|SDL_RESIZABLE|g_video_fullscreen)) == NULL) + if ((screen = SDL_SetVideoMode(g_video_width, g_video_height, 32, SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_RESIZABLE|g_video_fullscreen)) == NULL) return; } diff --git a/engine/sdl/timer.c b/engine/sdl/timer.c index 30b9d6f..c1d7636 100644 --- a/engine/sdl/timer.c +++ b/engine/sdl/timer.c @@ -1,4 +1,9 @@ #include "timer.h" +#if __MACH__ + #include + #include + #include +#endif int64_t setPTime(struct PTime *time, int64_t seconds, int64_t milliseconds, int64_t nanoseconds) { time->n = nanoseconds + (milliseconds*1000000) + (seconds*1000000000); @@ -14,15 +19,16 @@ int64_t getPTime(struct PTime *time) { time->m = ticks; time->n = ticks*1000000; #elif __MACH__ - clock_serv_t cclock; - mach_timespec_t mts; - host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); - clock_get_time(cclock, &mts); - mach_port_deallocate(mach_task_self(), cclock); + mach_timebase_info_data_t info; + mach_timebase_info(&info); - time->s = mts.tv_sec; - time->n = (mts.tv_sec * 1000000000) + mts.tv_nsec; - time->m = time->n / 1000000; + uint64_t m_time = mach_absolute_time(); + m_time *= info.numer; + m_time /= info.denom; + + time->n = m_time; + time->m = m_time / 1000000; + time->s = time->m / 1000; /*#elif __i586__ struct { int32 low, high; } counter; @@ -76,6 +82,5 @@ inline void doNanoSleep(int64_t nanoseconds) { //printf("snoozing for %lds and %ldns\n", ts.tv_sec, ts.tv_nsec); if (nanosleep(&ts, NULL) < 0) printf("ERR: had trouble sleeping\n"); // FIXME: THIS ERRORS ALOT - //nanosleep(&ts, NULL); #endif } diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/cdecls.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/cdecls.pbxbtree index e8d2f759fb9232624d8e368844e461fd27848272..7a0ea1d14ba5aecbc5bfaf2664997d537b4d7750 100644 GIT binary patch delta 2580 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 diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/decls.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/decls.pbxbtree index 124bce6d0a7e3fd4f81928589c7dc138f467aec4..402d4f8814e4a9b45df6cdc160b449a9b6282987 100644 GIT binary patch delta 2516 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 diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/files.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/files.pbxbtree index c9551a107b6f7b80481953373e06218b9ad8e311..abd7e559560ab48e1a112f0ebd751a4bd10b0095 100644 GIT binary patch delta 108 zcmV-y0F(dRHQY6@rxyjU000^+lR*g^v&R>60S><}00STV00Q((00YdrlSmmi0T7db z86GAF4FCfOIRFDV4gdoW4*&x}h5!RZegFeacmM;r=l}yoZvX?!(38X&YY7Vg02del O0|;-EJQ^{RX&Q4yY8z(& delta 112 zcmV-$0FVFNHQY6@rxykG000^+lR*g^v&R>60S*TZ00STV00Q((00SJJlSmmi0S}Xa z86GCf&;SDnIRFDV4gdoW4*&yAcmM-Ih5!RTkN^X@=l}xQ+10?s8I2tjNZ5nTq${Yd! diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/imports.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/imports.pbxbtree index 6a2e957b1606596542664516caf8a33a44463585..87051bf622427bb96ee1d4b790221eeb8bb7559d 100644 GIT binary patch delta 495 zcmaDdlkv$+#tGuQ7a16swlaW$^N)!t$Jp5O85o=wZ2S-|z{o$@L(r0)nWLP6;r6=C z9fHTSnb?Il2iV3j@wv1xupHE2VCVeGz|1bXd5`^VMn-|jGaQYS+#48}eG3?vcg<&D z@%#eB{~4J5g&CMRieY&28%H&|L3mKRldw|MY7?@pvw9Kl>0nTER?VMz+9Q%O6 zO$^LC-!U+|l>()^fXZco{0~4{9w-O2g8 z2P!kJ@UWW#(GM~U6gFpcfo7<4ax*Y+BmiBveR710|K`;$tC^Viw{DJbmu6%XoLu5z z$Hl)JsJ@bc*=OG7Js#3bj3Se7c)4;jb5t`hXcqzTrpX%K^Vs-zGBERgn>>+Ic=LU4 GRz?73CU@Nc delta 494 zcmaDdlkv$+#tGuQXBilnwlIK!^MZ*g$Jl%e7#N&?Z2S-|z{oe*L(r0);r2QPhO5?_ zI|PquGo8M+IlwlKiO;czf#skE13Twe2IkW@Ht(^&&B(|*d4{8r5_>)avwH&rv#&WW zJo$~Invl#224?m`24=fCKxK6d%#Kqgt2mii+09~L-uaG!nWGda3^c`Y643kyK(P-% z`Vmn13?TgkC_Vv5-vO#C2hz6~m{tBxp5he8B(rMr7pJUxnI%BOg@IUp;CzfO@+am|cM8?F8!KD2Dp8fPvWwzIYSYk_A3m`yXG^nczyxm|3Iez zrC~v9N{j_$S5$m#KVru zD}sU9XCBZSg`4+yNHZ}CPrl*h%FUo%#K54viGkr@(PRzpd2C)`K!<#rJdsm)^L=kt FMgWGNf@lB$ diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/pbxindex.header b/xcode/build/timesynk.build/timesynk.pbxindex/pbxindex.header index 926ad3e82c4038f957a9272dd96ce2aa24e038a3..41ef0796d8471d2c3ecc155b2b671d0166dc39df 100644 GIT binary patch literal 24 dcmXTO%&TBvV3B5Ec8g?SU^vCVz^eqL838%}1A71f literal 24 ecmXTO%&TBvV3B5ER<&SYU^vFW!1EqRGXelQTLb|B diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/refs.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/refs.pbxbtree index d8ce8b1637a10642f112b21677fb988ff8b26d39..1f02ba173ced71880a9155d5df26dc93066689be 100644 GIT binary patch delta 4947 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 diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/strings.pbxstrings/control b/xcode/build/timesynk.build/timesynk.pbxindex/strings.pbxstrings/control index 70d364753f10a4077a7f16e4ebf4b2b5667714e6..7f2e7046bedf64753fae09b0d7851871ca6cb158 100644 GIT binary patch delta 3752 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 delta 3682 zcmXw5eOy&ly58^Fd$0YyH|KZ&arksV6b~Rt8jcD!B-Wrbi9;%gncB>a`~*#h0u58I z_;D`i{&~Z+uFA{}wK~E(;}4Vyb$*FyU5utNKPHrk7|01^#%prds@wVJ?7i35v!3UD zpZBe;%&M)-vVT5zZm9s3f*{<}1>%1EKIFYqlmZ|JtHB9@gqk`}B7_Azqk`8wF%XE2 z4MvT4)r78qXI$`N%wCi1>8)AnUrrX^t!eic!|57-azVrxw%rdudOYdIf^R?&LZ%4| zVO&jJ@^cY?6YT%FEG)ddP;ka|WG%dPLkLL@Z(VqZ1Uzvy(^B@5Ro8+YDZ`=gNA@8& zn0?fSiNU(L-I6w1F#h~y<=Z#d%!uHTr}rr!*Gyg9udNlFw41`2dv}8A&*Tue5G;T8 zm&Cnz%Zv!#UUo!*Nx|wD>H!Q6x@hI{5J(KRRj`TaL349~3{k1mh3VB{wfCGteUW5d@iC+@`2)QgY33Ckydhz*~>c^SrI>1VLpf=os~M%{+fiSRUDwa6s`8a9NG>oUk# z9YzjjvUmTl$S_~xFC>lvaX9r^QcNI&Nq}dUkxzA4f_1CN2?a)C?u#Uxz)D=Yk+?Fv zg!e1RRsvyIwV5y>eAxU7DUhHMecMPTz#PoqPA-WMg7G^^s;2D|B>Rl)Us8mH`^Y5; zYS8~0Nz@q|`9}!j_Z}{-C#e>wSbLIGsNh9k3po=G^LenZ!I@V`s0m5@N@X_*je^BmxwM9>>}d+gn%~|4~!Kjc_A4)riiFO3|2qN#vvc$v&9MzMB(9i;(9M+ zV&t#IgCaY!`FU}SLN+z>J-=HcUK)AKOBt^8ll;+AHOaU?*KokhW@ck>J#3s_rwXVq_pT z1ox&&4}j|whmC1ciUh^{QJy4~Ib_uPPSFN2?N{P#ZTicB)T#kK+IgbfW?D#|eu zBw(!~v+NpywT9dzk{NHfxsF^9V{pKcCsX)6`orXz_UO0Y7d#n9duHtcfxz&Gvo3=m z?>Lz>>jntU#<-+echj*pURD4qu`WSguR}<&8N;WQ)qiki>DuK=@=y7kZF(Tc;HF7khqi?O; zDKo^qFUs>(uHU>(@@-&|JoObhkHBQNdW(DlRKCf)SLJmCV%_#_GP3xq+AepBptyxQ z<$jioxx3^hLMo4Oei8!moH#93uvZmcSlS94{gHR&MIuZ>sYxyv12z_3mC*we(bp%R zv0w#u{I6WW;-WF1rc&78R#932+5FT&Nd-!&TTgjUnv4E1kv|EL@~4$^;t8l7*tglH=+udfjBP&^(VGx5%Mm zSn@2*bl?Iutf7vV4^+{WB0P-#Z8VkHG#2ipXGEBSkpbEba15myT1;t@pgg^Aw!3=2 znvMtd)8h(gJXm+WL0{F_WZzq~n?eeAy5x5$yZ?)Bbt8RFdr^Qtp0=KEmG~7xo9F|P z>E=5{nU1C3^VdeBDg4CE{*dnG9v+8-AJPWYpR5S2irl( zp|BZ!s?r$`vHZlSWMz@Wke8<^yQYxK{b-gb8;n3~1irprX(U>R;N0DA4^%RF;_#)7 z$}SlUG%J<$gi&3!Ss5ZQ8q2pR#ZmAjUVT$3w&8P}`i`>VQS$Adu;E*!AK(?fwq;P+ zrNQR`PX=xoR{9*x7K9@BCYlRB16v&RTogp{iAR#vk2vVkR5elL_hNqhklG}(#3+A6 zE$}eLIv!WuFlON;i`DBMSQ+pn;kq?yas-p|@D8;#0k8zqg|hmH3|tytwev8$U}v;`Be zE<#&rz*saBwE2cR?`;x-WfQaqA@D7h&d|a|R!FL|wIN_pR5epuslag@n61@I%rfep z(%zANtc#dmpe0Jsgyjph`cS4#{A#T`goV1fS!0QtfzmcDoG=<9|6N0X8Q8Hy%Zp=o zjz6XyoX&35_O<4S@E&&bY0OLrcKkzgy)ex!k@ZBFinX#n$0D1WvCFHo*!G|lt*1;T zQ$NM@c{;nnEj+wfZ!$^MC@g$IXCgg=xhr*sJI~Ett*3fY1lxaX;IFMj@Z7rZo46;` zty-;jgMuY%^bF!2IiY3Ytx}z(`meEYy&kT@61TKM?}V>8!OJT3nE(s;B z`EH##bG_hXIP+qDHz?>;Yp%qy#>?4QTNd-iR;=5j=g7=xyY}i|u{KV{E3SUd3k$#3 z|G#w`0NjqZ^pD*welZr$Ht5rd=QTl@wIj5s6$DMq2`xHTioO$iy~>JEGwQ6EkHpAR zI#aR-eW!J1tzM?2`$C((0(dKj-?i!MEJ(%DPjpA->C&k)Tls*azW9Z{3*ap*ysl@; zjJ>)poz;srY#8KIzrp5v`aX?p=;bN2MKWF{^kYFwid*M`LVOsd7%9N~BUd%ngU1%k z;#;4NSWJHGIo%G;nEzuSxaqnv40)Jt82ci~((~9JZw%8PxVtspNZ}FXOEs>uGRT2h zlZ~SzShIEV2_uhaiv@GABy4{xD}E7}Fxyx`Sk%_$894^5!>bDnB?Pkg(0Bi4yljJy zCtu?R8mwVpZ25Xn*U_;P&&ZeP)=jVTM-MB|B zUm$h@7QJtLBL!l|V%d4)oCHsB7K_@AYXHf7@3N1KbxbGhy=3$&Ka_*PPUC18jA9_% z#y(>X9VK|TM0dKLl@_C^-?;4q+m$3U2c~nJ%Otaikc=Dr`3q_urx4HgJ!_eFQ<%>* zPc=JD_$g}(OecvZ2&ARt5AHi_4Ij3wH5mw<>)TRh9{2o32&o-CviA^+uRAOL+1vUE zmaj7_G-lQJD@?}9A(Zx*!^!XzN~g`?B<8iAkuUH6_y+LS;x}0KmHB|MiF7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQEkX*@>x)xM z0zxu#QyJ1>jFf!8#Jv3AoYd3;xS&gBS{g$MP+5FRYEDTagbAgR7>eUlK=Qc|Di2B( z$EOt~CYNO9=P{(mCnpwwxVfoCi6yB(?aA5kAmbS1!RE!M6%<4GKyG4Xd|oloFt9uT D&R|HG delta 45 zcmdnD-fO`+uZ9-J7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQEkX*@0dHgu AssI20 diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/symbols0.pbxsymbols b/xcode/build/timesynk.build/timesynk.pbxindex/symbols0.pbxsymbols index 49be6bee3e3d9550fe6ff5a53802a1a249e58da7..2a1b1c52607c5fd6d0b267233019feb2ed8158ad 100644 GIT binary patch delta 26917 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%0Dvh4?}*g5|&`%(kThc zNl92vN`)t-!jlp-1Gq|9PD+I*Rl=eT@KwG7Uvj?EMV^I+Ps8KA=F(9{@@DTSe>WDx zLYUo6t0_a3sQg6|k-rEXIA7BMa-#B&5}A`IPl*gADo9v3Q8`2MAtU&Vihg zML6xO&dOH2mkPklZvaCR7i7SE0rib4sLG)tPH=*W%j25n(k$~_-OwlRYH_9n{m{#q zRj)J%I5I2r164>CBV%HVNnxnP|1e{M!agyWQgJevQs+>Ee-MLzxWM3kk_#GaY@egY z%ImR@R36bVvstn>7o6Lg1gYy`+>U!cT4bj z2uB;eX!Lckb%bW$+7@zr0G#Jlz)hb9=T(fl5q=1Em#RB+x=irZv9lN{^G6Vl68b2aD}pdl=zu(vB4tz$mkI-rTMRh)JyZa=wHt7>@Bx`WMz%cT zP<{{ifSW#r2QH_U!vhmQF9{loO&sC0vH*s9zz;&ymvc)!$^|TdQ>{`@95P{kjbOqB z9w9u`BcwRgBPnz$27@Mv!IQ)@K{#3Hli4$fPxU~#sd6PCyCw*y2py1H4mjljR4_%0 z>3^0X8o*FhJXPcYS$+oek%s`;L&#Z6O5mYcME8dbT_TW+07G3w_{PJfPId^z2;pxB zaVSPE%P|1R$8ABFA#_0A#0BA%LI=Fh-v>Kte*rvoZ+3sFJ+l$dDYL^>KAz1!{|M^ahm126-THXZnuwq8>m|B&E>bg zx^MJ0@*7>XYrX1MQB8Mv7n&l*+9e=R?q*27qsU1I>%xokDWhS$UA(jqP>#S_R8HE-?Cwq zrVaikf5_hNzuw`i^SnMeFvO0Zv+O?F(W8PsIRXKnFVFZ=F1YHNks(kDg1Z!^2Y>b< zKMP6F)SXG^GPO>Ay@!4y7kFl~HzG3PaOG#3X*>ODC9wZtZ?V@KZdR{4A073+mtJ)) z{U2COKck<*4zX zSbR{9u?~x(!=ea~6%kGq5>9uAkYjy^rTk&hH-M{SF~4Hy(xMIaCNZPESE?va*2e?AHGDwJDVr`p|?oPz(E|~pj#y1e2WA) z=oaZ+xkYM~TO>g4+y8^N-u(a6Yj6MjTW@Rrsn_2Ae|zg~&40sNZ}?Sd0llpDH##@9 z%<%zVN59VL#!I@C$pyyl^=1^Cy-k62mkyh;gnsu^yJ=VpeHd(8!BfKm1y5a)*2UEO zhqsKUhk}=e_a#|5v0MAW@F)4}JN+LI&jrs|{K;_srE}XS!y7Lh>8Ia2(05hvvj9L! z27{lkS*ckLPc(MT&_{*8M$9uGZjCjXXXtepH!ufy@9A6$9H?ICvzY}G%wV_^D1xjNu)SHKEfDGa(gc!Hv*lYS3lxuFQ| zERw?y{4R!nC|neH!{mE_e=whJ^JOGc+?P!9sUOvMr}UUuIQjI9(d^8AmP*jfP*3wx3Yt- z1~C|S7%NZe<8&oFNGYyrOP(}NJfx3Yg(`3{J7^RTPE`O7ssi|+K|uJAgCKa+gnOGX zItx0&KT@3IGsdp=O&Pv}I!q0F{OaGt^GODL4*Jn?#tp0V1pMIO$8UF}Lj%no7@-#Y zXe9KrN*1iH^jRhF2Yn)gt)mNH7f49DapG*o-aVk{|Je35{ za^UOdJ`ubEkSYxR?3Qql{g4u5l`gA1}&y}wuT_aydx<>k*KHo&Y8_E(mPx$jB7UoI0dBR_y z`PFxu=zC7|yW9mL5b`}IreBETJ5K!BCH}4x%Hi^vKfAPu8WNn7kp8K?3Pah@MBTd* z6Ho>wpeFh@kn!ZldV(o7kbX-4mC3Z(XuaK+Ld!@0?Y{H8f9ikIS4p7kYZt+;;1p-uFV{q~H$9#-EtGmzPsUjE|$1odEjj{pDw delta 23863 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 - BecomeActive - ContentConfiguration PBXBottomSmartGroupGIDs @@ -268,22 +266,18 @@ 29B97314FDCFA39411CA2CEA 29B97317FDCFA39411CA2CEA 1C37FBAC04509CD000000102 - 20B2ED9D18BCAD1D00A898D2 - 20B2EDCC18BCB09000A898D2 1C37FAAC04509CD000000102 1C37FABC05509CD000000102 PBXSmartGroupTreeModuleOutlineStateSelectionKey - 48 47 - 45 - 42 + 46 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 469}, {186, 364}} + {{0, 323}, {186, 493}} PBXTopSmartGroupGIDs @@ -295,14 +289,14 @@ GeometryConfiguration Frame - {{0, 0}, {203, 382}} + {{0, 0}, {203, 511}} GroupTreeTableConfiguration MainColumn 186 RubberWindowFrame - -3 323 810 423 0 0 1024 746 + 93 103 841 552 0 0 1024 746 Module PBXSmartGroupTreeModule @@ -313,12 +307,14 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID 1CE0B20306471E060097A5F4 PBXProjectModuleLabel - r_soft.c + r_gl.c PBXSplitModuleInNavigatorKey Split0 @@ -326,11 +322,11 @@ PBXProjectModuleGUID 1CE0B20406471E060097A5F4 PBXProjectModuleLabel - r_soft.c + r_gl.c _historyCapacity 0 bookmark - 20B2EE0B18BCB65800A898D2 + 20935BB818BEBF2000C1B0F9 history 206D60391808F3A600C0DE49 @@ -373,11 +369,11 @@ 20A19DB518B8A04500FAE3FF 20B2EDCE18BCB09000A898D2 20B2EDCF18BCB09000A898D2 - 20B2EDD018BCB09000A898D2 20B2EDF318BCB32C00A898D2 - 20B2EE0118BCB62700A898D2 20B2EE0218BCB62700A898D2 - 20B2EE0318BCB62700A898D2 + 20935BB018BEBF2000C1B0F9 + 20935BB118BEBF2000C1B0F9 + 20935BB218BEBF2000C1B0F9 prevStack @@ -427,8 +423,12 @@ 20B2EDD418BCB09000A898D2 20B2EDD518BCB09000A898D2 20B2EDF518BCB32C00A898D2 - 20B2EE0418BCB62700A898D2 - 20B2EE0518BCB62700A898D2 + 203BB50318BCB8B200E4829F + 20935BB318BEBF2000C1B0F9 + 20935BB418BEBF2000C1B0F9 + 20935BB518BEBF2000C1B0F9 + 20935BB618BEBF2000C1B0F9 + 20935BB718BEBF2000C1B0F9 SplitCount @@ -440,14 +440,14 @@ GeometryConfiguration Frame - {{0, 0}, {602, 253}} + {{0, 0}, {633, 382}} RubberWindowFrame - -3 323 810 423 0 0 1024 746 + 93 103 841 552 0 0 1024 746 Module PBXNavigatorGroup Proportion - 253pt + 382pt ContentConfiguration @@ -460,9 +460,9 @@ GeometryConfiguration Frame - {{0, 258}, {602, 124}} + {{0, 387}, {633, 124}} RubberWindowFrame - -3 323 810 423 0 0 1024 746 + 93 103 841 552 0 0 1024 746 Module XCDetailModule @@ -471,7 +471,7 @@ Proportion - 602pt + 633pt Name @@ -486,9 +486,9 @@ TableOfContents - 20B2EDA718BCAD2700A898D2 + 20935BB918BEBF2000C1B0F9 1CE0B1FE06471DED0097A5F4 - 20B2EDA818BCAD2700A898D2 + 20935BBA18BEBF2000C1B0F9 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -622,15 +622,15 @@ 5 WindowOrderList - 20B2EDD818BCB09000A898D2 - 20B2EDD918BCB09000A898D2 - 1CD10A99069EF8BA00B06720 - 20F6A1B417E95A6200BAD261 + 20935BC318BEBF2000C1B0F9 + 20935BC418BEBF2000C1B0F9 1C78EAAD065D492600B07095 /Users/kts/Devel/timesynk/xcode/timesynk.xcodeproj + 20F6A1B417E95A6200BAD261 + 1CD10A99069EF8BA00B06720 WindowString - -3 323 810 423 0 0 1024 746 + 93 103 841 552 0 0 1024 746 WindowToolsV3 @@ -709,7 +709,7 @@ TableOfContents 20F6A1B417E95A6200BAD261 - 20B2EDC418BCB08C00A898D2 + 20935BBB18BEBF2000C1B0F9 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -803,10 +803,10 @@ Frame {{383, 0}, {458, 207}} RubberWindowFrame - 133 266 841 429 0 0 1024 746 + 133 267 841 429 0 0 1024 746 RubberWindowFrame - 133 266 841 429 0 0 1024 746 + 133 267 841 429 0 0 1024 746 Module PBXDebugSessionModule @@ -829,18 +829,18 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 20B2EDC518BCB08C00A898D2 + 20935BBC18BEBF2000C1B0F9 1C162984064C10D400B95A72 - 20B2EDC618BCB08C00A898D2 - 20B2EDC718BCB08C00A898D2 - 20B2EDC818BCB08C00A898D2 - 20B2EDC918BCB08C00A898D2 - 20B2EDCA18BCB08C00A898D2 + 20935BBD18BEBF2000C1B0F9 + 20935BBE18BEBF2000C1B0F9 + 20935BBF18BEBF2000C1B0F9 + 20935BC018BEBF2000C1B0F9 + 20935BC118BEBF2000C1B0F9 ToolbarConfiguration xcode.toolbar.config.debugV3 WindowString - 133 266 841 429 0 0 1024 746 + 133 267 841 429 0 0 1024 746 WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible @@ -999,7 +999,7 @@ TableOfContents 1C78EAAD065D492600B07095 - 20B2EDCB18BCB08C00A898D2 + 20935BC218BEBF2000C1B0F9 1C78EAAC065D492600B07095 ToolbarConfiguration diff --git a/xcode/timesynk.xcodeproj/kts.pbxuser b/xcode/timesynk.xcodeproj/kts.pbxuser index 8558890..e9f1890 100644 --- a/xcode/timesynk.xcodeproj/kts.pbxuser +++ b/xcode/timesynk.xcodeproj/kts.pbxuser @@ -85,6 +85,16 @@ sepNavVisRange = "{278, 391}"; }; }; + 203BB50318BCB8B200E4829F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15A18B8989D00CD2A39 /* r_soft.c */; + name = "r_soft.c: 46"; + rLen = 0; + rLoc = 1324; + rType = 0; + vrLen = 404; + vrLoc = 1100; + }; 204EC15718285FB20035FB9D /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 20F6A1C417E95AD300BAD261 /* common.h */; @@ -564,16 +574,16 @@ }; 208EB15818B8989D00CD2A39 /* r_gl.c */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1710, 3262}}"; - sepNavSelRange = "{8637, 0}"; - sepNavVisRange = "{2544, 1074}"; + sepNavIntBoundsRect = "{{0, 0}, {630, 3318}}"; + sepNavSelRange = "{8523, 0}"; + sepNavVisRange = "{5617, 928}"; }; }; 208EB15A18B8989D00CD2A39 /* r_soft.c */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {846, 2590}}"; + sepNavIntBoundsRect = "{{0, 0}, {846, 2576}}"; sepNavSelRange = "{1324, 0}"; - sepNavVisRange = "{1100, 479}"; + sepNavVisRange = "{908, 608}"; }; }; 208EB15C18B8989D00CD2A39 /* sdl_extra.c */ = { @@ -621,6 +631,93 @@ vrLen = 175; vrLoc = 0; }; + 20935BB018BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 20B2EDB218BCAD6C00A898D2 /* timer.c */; + name = "timer.c: 87"; + rLen = 0; + rLoc = 2230; + rType = 0; + vrLen = 632; + vrLoc = 0; + }; + 20935BB118BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15A18B8989D00CD2A39 /* r_soft.c */; + name = "r_soft.c: 46"; + rLen = 0; + rLoc = 1324; + rType = 0; + vrLen = 608; + vrLoc = 908; + }; + 20935BB218BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; + rLen = 1; + rLoc = 166; + rType = 1; + }; + 20935BB318BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; + name = "r_gl.c: 248"; + rLen = 0; + rLoc = 8637; + rType = 0; + vrLen = 697; + vrLoc = 66; + }; + 20935BB418BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15A18B8989D00CD2A39 /* r_soft.c */; + name = "r_soft.c: 46"; + rLen = 0; + rLoc = 1324; + rType = 0; + vrLen = 671; + vrLoc = 908; + }; + 20935BB518BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 20B2EDB218BCAD6C00A898D2 /* timer.c */; + name = "timer.c: 87"; + rLen = 0; + rLoc = 2230; + rType = 0; + vrLen = 632; + vrLoc = 0; + }; + 20935BB618BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; + name = "r_gl.c: 53"; + rLen = 0; + rLoc = 1217; + rType = 0; + vrLen = 576; + vrLoc = 1133; + }; + 20935BB718BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15A18B8989D00CD2A39 /* r_soft.c */; + name = "r_soft.c: 46"; + rLen = 0; + rLoc = 1324; + rType = 0; + vrLen = 608; + vrLoc = 908; + }; + 20935BB818BEBF2000C1B0F9 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; + name = "r_gl.c: 246"; + rLen = 0; + rLoc = 8523; + rType = 0; + vrLen = 928; + vrLoc = 5617; + }; 209A27C61812256F00B15CEC /* npc.c */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {755, 1274}}"; @@ -724,9 +821,9 @@ }; 20B2EDB218BCAD6C00A898D2 /* timer.c */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {439, 630}}"; - sepNavSelRange = "{1073, 0}"; - sepNavVisRange = "{0, 386}"; + sepNavIntBoundsRect = "{{0, 0}, {600, 1176}}"; + sepNavSelRange = "{2230, 0}"; + sepNavVisRange = "{136, 432}"; }; }; 20B2EDCE18BCB09000A898D2 /* PBXTextBookmark */ = { @@ -749,16 +846,6 @@ vrLen = 363; vrLoc = 0; }; - 20B2EDD018BCB09000A898D2 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 20B2EDB218BCAD6C00A898D2 /* timer.c */; - name = "timer.c: 42"; - rLen = 0; - rLoc = 1073; - rType = 0; - vrLen = 387; - vrLoc = 0; - }; 20B2EDD218BCB09000A898D2 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; @@ -819,16 +906,6 @@ vrLen = 694; vrLoc = 0; }; - 20B2EE0118BCB62700A898D2 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; - name = "r_gl.c: 56"; - rLen = 0; - rLoc = 1311; - rType = 0; - vrLen = 333; - vrLoc = 1079; - }; 20B2EE0218BCB62700A898D2 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 002F3A2C09D0888800EBEB88 /* SDLMain.m */; @@ -839,43 +916,6 @@ vrLen = 517; vrLoc = 0; }; - 20B2EE0318BCB62700A898D2 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 208EB15A18B8989D00CD2A39 /* r_soft.c */; - rLen = 0; - rLoc = 45; - rType = 1; - }; - 20B2EE0418BCB62700A898D2 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 208EB15818B8989D00CD2A39 /* r_gl.c */; - name = "r_gl.c: 56"; - rLen = 0; - rLoc = 1311; - rType = 0; - vrLen = 333; - vrLoc = 1079; - }; - 20B2EE0518BCB62700A898D2 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 002F3A2C09D0888800EBEB88 /* SDLMain.m */; - name = "SDLMain.m: 1"; - rLen = 11264; - rLoc = 0; - rType = 0; - vrLen = 517; - vrLoc = 0; - }; - 20B2EE0B18BCB65800A898D2 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 208EB15A18B8989D00CD2A39 /* r_soft.c */; - name = "r_soft.c: 46"; - rLen = 0; - rLoc = 1324; - rType = 0; - vrLen = 479; - vrLoc = 1100; - }; 20CD05AE180FBCD8005A8231 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 204F942518005466007B4DAD /* map.h */; @@ -1488,7 +1528,7 @@ PBXFileTableDataSourceColumnWidthsKey = ( 22, 300, - 250.58349609375, + 281.58349609375, ); PBXFileTableDataSourceColumnsKey = ( PBXExecutablesDataSource_ActiveFlagID, @@ -1556,14 +1596,15 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 415018268; - PBXWorkspaceStateSaveDate = 415018268; + PBXPerProjectTemplateStateSaveDate = 415146221; + PBXWorkspaceStateSaveDate = 415146221; }; perUserProjectItems = { 2007C93017ECF2EB00268653 /* PBXTextBookmark */ = 2007C93017ECF2EB00268653 /* PBXTextBookmark */; 2019284D187269BC006071D0 /* PlistBookmark */ = 2019284D187269BC006071D0 /* PlistBookmark */; 2019284E187269BC006071D0 /* PlistBookmark */ = 2019284E187269BC006071D0 /* PlistBookmark */; 201928951872766C006071D0 /* PBXTextBookmark */ = 201928951872766C006071D0 /* PBXTextBookmark */; + 203BB50318BCB8B200E4829F /* PBXTextBookmark */ = 203BB50318BCB8B200E4829F /* PBXTextBookmark */; 204EC15718285FB20035FB9D /* PBXTextBookmark */ = 204EC15718285FB20035FB9D /* PBXTextBookmark */; 204EC15918285FB20035FB9D /* PBXTextBookmark */ = 204EC15918285FB20035FB9D /* PBXTextBookmark */; 204EC171182889AD0035FB9D /* PBXTextBookmark */ = 204EC171182889AD0035FB9D /* PBXTextBookmark */; @@ -1597,6 +1638,15 @@ 2090289E17E95F9E0051A253 /* PBXTextBookmark */ = 2090289E17E95F9E0051A253 /* PBXTextBookmark */; 2090289F17E95F9E0051A253 /* PBXTextBookmark */ = 2090289F17E95F9E0051A253 /* PBXTextBookmark */; 209028A517E95F9E0051A253 /* PBXTextBookmark */ = 209028A517E95F9E0051A253 /* PBXTextBookmark */; + 20935BB018BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB018BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB118BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB118BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB218BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB218BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB318BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB318BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB418BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB418BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB518BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB518BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB618BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB618BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB718BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB718BEBF2000C1B0F9 /* PBXTextBookmark */; + 20935BB818BEBF2000C1B0F9 /* PBXTextBookmark */ = 20935BB818BEBF2000C1B0F9 /* PBXTextBookmark */; 209EE344188D6D72007B3526 /* PBXTextBookmark */ = 209EE344188D6D72007B3526 /* PBXTextBookmark */; 209EE345188D6D72007B3526 /* PBXTextBookmark */ = 209EE345188D6D72007B3526 /* PBXTextBookmark */; 209EE346188D6D72007B3526 /* PBXTextBookmark */ = 209EE346188D6D72007B3526 /* PBXTextBookmark */; @@ -1607,19 +1657,13 @@ 20A770FB1837870D00BC220B /* PBXTextBookmark */ = 20A770FB1837870D00BC220B /* PBXTextBookmark */; 20B2EDCE18BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDCE18BCB09000A898D2 /* PBXTextBookmark */; 20B2EDCF18BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDCF18BCB09000A898D2 /* PBXTextBookmark */; - 20B2EDD018BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDD018BCB09000A898D2 /* PBXTextBookmark */; 20B2EDD218BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDD218BCB09000A898D2 /* PBXTextBookmark */; 20B2EDD318BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDD318BCB09000A898D2 /* PBXTextBookmark */; 20B2EDD418BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDD418BCB09000A898D2 /* PBXTextBookmark */; 20B2EDD518BCB09000A898D2 /* PBXTextBookmark */ = 20B2EDD518BCB09000A898D2 /* PBXTextBookmark */; 20B2EDF318BCB32C00A898D2 /* PBXTextBookmark */ = 20B2EDF318BCB32C00A898D2 /* PBXTextBookmark */; 20B2EDF518BCB32C00A898D2 /* PBXTextBookmark */ = 20B2EDF518BCB32C00A898D2 /* PBXTextBookmark */; - 20B2EE0118BCB62700A898D2 /* PBXTextBookmark */ = 20B2EE0118BCB62700A898D2 /* PBXTextBookmark */; 20B2EE0218BCB62700A898D2 /* PBXTextBookmark */ = 20B2EE0218BCB62700A898D2 /* PBXTextBookmark */; - 20B2EE0318BCB62700A898D2 /* PBXTextBookmark */ = 20B2EE0318BCB62700A898D2 /* PBXTextBookmark */; - 20B2EE0418BCB62700A898D2 /* PBXTextBookmark */ = 20B2EE0418BCB62700A898D2 /* PBXTextBookmark */; - 20B2EE0518BCB62700A898D2 /* PBXTextBookmark */ = 20B2EE0518BCB62700A898D2 /* PBXTextBookmark */; - 20B2EE0B18BCB65800A898D2 /* PBXTextBookmark */ = 20B2EE0B18BCB65800A898D2 /* PBXTextBookmark */; 20CD05AE180FBCD8005A8231 /* PBXTextBookmark */ = 20CD05AE180FBCD8005A8231 /* PBXTextBookmark */; 20DE9D35180500990047B2DD /* PBXTextBookmark */ = 20DE9D35180500990047B2DD /* PBXTextBookmark */; 20DE9D36180500990047B2DD /* PBXTextBookmark */ = 20DE9D36180500990047B2DD /* PBXTextBookmark */;