From 660d0e1241f653b47dac025196c35c3be6ef4439 Mon Sep 17 00:00:00 2001 From: Nicolas Gramlich Date: Fri, 4 Nov 2011 16:42:38 +0100 Subject: [PATCH] Changes due to AndEngine changes. Temporary changes in TextExample due to BitmapFont testing. --- .classpath | 8 - .project | 42 ---- assets/font/BitmapFont.fnt | 153 ++++++++++++ assets/font/BitmapFont.png | Bin 0 -> 77612 bytes .../AnalogOnScreenControlExample.java | 5 +- .../AnalogOnScreenControlsExample.java | 5 +- .../examples/AnimatedSpritesExample.java | 8 +- .../examples/AugmentedRealityExample.java | 7 +- .../AugmentedRealityHorizonExample.java | 9 +- .../AutoParallaxBackgroundExample.java | 5 +- .../examples/BasePhysicsJointExample.java | 8 +- .../examples/BoundCameraExample.java | 5 +- .../examples/ChangeableTextExample.java | 12 +- .../examples/CollisionDetectionExample.java | 5 +- ...ColorKeyTextureSourceDecoratorExample.java | 3 +- .../examples/CoordinateConversionExample.java | 5 +- .../andengine/examples/CustomFontExample.java | 32 +-- .../DigitalOnScreenControlExample.java | 5 +- .../examples/ETC1TextureExample.java | 6 +- .../examples/EaseFunctionExample.java | 14 +- .../examples/EntityModifierExample.java | 7 +- .../EntityModifierIrregularExample.java | 7 +- .../examples/ImageFormatsExample.java | 12 +- .../examples/LevelLoaderExample.java | 10 +- .../examples/LoadTextureExample.java | 7 +- .../andengine/examples/MenuExample.java | 5 +- .../andengine/examples/ModPlayerExample.java | 7 +- .../andengine/examples/MovingBallExample.java | 7 +- .../andengine/examples/MultiTouchExample.java | 8 +- .../examples/MultiplayerBluetoothExample.java | 9 +- .../examples/MultiplayerExample.java | 8 +- .../MultiplayerServerDiscoveryExample.java | 9 +- .../andengine/examples/MusicExample.java | 8 +- .../examples/PVRCCZTextureExample.java | 7 +- .../examples/PVRGZTextureExample.java | 7 +- .../andengine/examples/PVRTextureExample.java | 13 +- .../examples/PathModifierExample.java | 9 +- .../andengine/examples/PauseExample.java | 7 +- .../PhysicsCollisionFilteringExample.java | 9 +- .../andengine/examples/PhysicsExample.java | 9 +- .../examples/PhysicsFixedStepExample.java | 8 +- .../examples/PhysicsJumpExample.java | 6 +- .../examples/PhysicsMouseJointExample.java | 9 +- .../examples/PhysicsRemoveExample.java | 6 +- .../andengine/examples/PinchZoomExample.java | 8 +- .../RepeatingSpriteBackgroundExample.java | 7 +- .../andengine/examples/Rotation3DExample.java | 24 +- .../RunnablePoolUpdateHandlerExample.java | 7 +- .../examples/SVGTextureRegionExample.java | 6 +- .../andengine/examples/SoundExample.java | 9 +- .../examples/SplitScreenExample.java | 6 +- .../examples/SpriteBatchExample.java | 7 +- .../andengine/examples/SpriteExample.java | 7 +- .../examples/SpriteRemoveExample.java | 7 +- .../andengine/examples/StrokeFontExample.java | 22 +- .../andengine/examples/SubMenuExample.java | 8 +- .../andengine/examples/TextExample.java | 219 ++++++++++-------- .../andengine/examples/TextMenuExample.java | 19 +- .../examples/TextureOptionsExample.java | 7 +- .../examples/TexturePackerExample.java | 11 +- .../andengine/examples/TickerTextExample.java | 27 +-- .../andengine/examples/TouchDragExample.java | 7 +- .../examples/UnloadResourcesExample.java | 9 +- .../examples/UpdateTextureExample.java | 4 +- .../andengine/examples/ZoomExample.java | 7 +- .../app/cityradar/CityRadarActivity.java | 14 +- .../benchmark/AnimationBenchmark.java | 5 +- .../examples/benchmark/BaseBenchmark.java | 6 +- .../benchmark/EntityModifierBenchmark.java | 4 +- .../examples/benchmark/PhysicsBenchmark.java | 4 +- .../examples/benchmark/SpriteBenchmark.java | 3 +- .../benchmark/TickerTextBenchmark.java | 12 +- .../examples/game/pong/PongGameActivity.java | 13 +- .../examples/game/pong/PongServer.java | 2 +- .../game/racer/RacerGameActivity.java | 7 +- .../game/snake/SnakeGameActivity.java | 18 +- .../examples/launcher/ExampleLauncher.java | 2 +- 77 files changed, 505 insertions(+), 544 deletions(-) create mode 100644 assets/font/BitmapFont.fnt create mode 100644 assets/font/BitmapFont.png diff --git a/.classpath b/.classpath index 2029269..a4763d1 100644 --- a/.classpath +++ b/.classpath @@ -3,14 +3,6 @@ - - - - - - - - diff --git a/.project b/.project index 4362535..6565344 100644 --- a/.project +++ b/.project @@ -30,46 +30,4 @@ com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature - - - AndEngineAugmentedRealityExtension_src - 2 - _android_AndEngineAugmentedRealityExtension_689d0606/src - - - AndEngineMODPlayerExtension_src - 2 - _android_AndEngineMODPlayerExtension_e98659b5/src - - - AndEngineMultiTouchExtension_src - 2 - _android_AndEngineMultiTouchExtension_388759c0/src - - - AndEngineMultiplayerExtension_src - 2 - _android_AndEngineMultiplayerExtension_5fcf107e/src - - - AndEnginePhysicsBox2DExtension_src - 2 - _android_AndEnginePhysicsBox2DExtension_83d4a030/src - - - AndEngineSVGTextureRegionExtension_src - 2 - _android_AndEngineSVGTextureRegionExtension_f1da7bb/src - - - AndEngineTexturePackerExtension_src - 2 - _android_AndEngineTexturePackerExtension_63b7e5f7/src - - - AndEngine_src - 2 - _android_AndEngine_6e0d82d9/src - - diff --git a/assets/font/BitmapFont.fnt b/assets/font/BitmapFont.fnt new file mode 100644 index 0000000..eb21388 --- /dev/null +++ b/assets/font/BitmapFont.fnt @@ -0,0 +1,153 @@ +info face="AppleCasual" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 +common lineHeight=39 base=26 scaleW=512 scaleH=256 pages=1 packed=0 +page id=0 file="BitmapFont.png" +chars count=148 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=26 xadvance=22 page=0 chnl=0 +char id=210 x=0 y=0 width=22 height=35 xoffset=-1 yoffset=-4 xadvance=23 page=0 chnl=0 +char id=125 x=22 y=0 width=17 height=35 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=0 +char id=123 x=39 y=0 width=17 height=35 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=0 +char id=223 x=56 y=0 width=23 height=34 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=0 +char id=214 x=79 y=0 width=22 height=34 xoffset=-1 yoffset=-3 xadvance=23 page=0 chnl=0 +char id=213 x=101 y=0 width=25 height=34 xoffset=-1 yoffset=-3 xadvance=23 page=0 chnl=0 +char id=212 x=126 y=0 width=22 height=34 xoffset=-1 yoffset=-3 xadvance=23 page=0 chnl=0 +char id=211 x=148 y=0 width=22 height=34 xoffset=-1 yoffset=-3 xadvance=23 page=0 chnl=0 +char id=206 x=170 y=0 width=18 height=34 xoffset=-1 yoffset=-3 xadvance=20 page=0 chnl=0 +char id=205 x=188 y=0 width=17 height=34 xoffset=0 yoffset=-3 xadvance=20 page=0 chnl=0 +char id=199 x=205 y=0 width=21 height=34 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0 +char id=255 x=226 y=0 width=21 height=33 xoffset=0 yoffset=3 xadvance=23 page=0 chnl=0 +char id=209 x=247 y=0 width=22 height=33 xoffset=0 yoffset=-3 xadvance=25 page=0 chnl=0 +char id=207 x=269 y=0 width=18 height=33 xoffset=-1 yoffset=-2 xadvance=20 page=0 chnl=0 +char id=204 x=287 y=0 width=18 height=33 xoffset=0 yoffset=-2 xadvance=20 page=0 chnl=0 +char id=202 x=305 y=0 width=22 height=33 xoffset=-1 yoffset=-3 xadvance=24 page=0 chnl=0 +char id=200 x=327 y=0 width=21 height=33 xoffset=0 yoffset=-3 xadvance=24 page=0 chnl=0 +char id=195 x=348 y=0 width=24 height=33 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0 +char id=194 x=372 y=0 width=23 height=33 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0 +char id=193 x=395 y=0 width=24 height=33 xoffset=0 yoffset=-3 xadvance=27 page=0 chnl=0 +char id=192 x=419 y=0 width=24 height=33 xoffset=0 yoffset=-3 xadvance=26 page=0 chnl=0 +char id=36 x=443 y=0 width=22 height=33 xoffset=0 yoffset=0 xadvance=26 page=0 chnl=0 +char id=81 x=465 y=0 width=22 height=33 xoffset=-1 yoffset=2 xadvance=23 page=0 chnl=0 +char id=220 x=487 y=0 width=22 height=32 xoffset=0 yoffset=-2 xadvance=24 page=0 chnl=0 +char id=219 x=0 y=35 width=21 height=32 xoffset=0 yoffset=-2 xadvance=24 page=0 chnl=0 +char id=218 x=21 y=35 width=21 height=32 xoffset=1 yoffset=-2 xadvance=24 page=0 chnl=0 +char id=217 x=42 y=35 width=21 height=32 xoffset=1 yoffset=-2 xadvance=24 page=0 chnl=0 +char id=203 x=63 y=35 width=21 height=32 xoffset=-1 yoffset=-2 xadvance=24 page=0 chnl=0 +char id=201 x=84 y=35 width=22 height=32 xoffset=-1 yoffset=-2 xadvance=24 page=0 chnl=0 +char id=197 x=106 y=35 width=24 height=32 xoffset=-1 yoffset=-2 xadvance=26 page=0 chnl=0 +char id=196 x=130 y=35 width=24 height=32 xoffset=-1 yoffset=-2 xadvance=26 page=0 chnl=0 +char id=124 x=154 y=35 width=11 height=32 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=0 +char id=93 x=165 y=35 width=15 height=32 xoffset=-1 yoffset=1 xadvance=18 page=0 chnl=0 +char id=91 x=180 y=35 width=15 height=32 xoffset=0 yoffset=1 xadvance=18 page=0 chnl=0 +char id=41 x=195 y=35 width=15 height=32 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0 +char id=40 x=210 y=35 width=15 height=32 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0 +char id=106 x=225 y=35 width=16 height=32 xoffset=0 yoffset=4 xadvance=19 page=0 chnl=0 +char id=229 x=241 y=35 width=22 height=31 xoffset=-1 yoffset=-1 xadvance=23 page=0 chnl=0 +char id=216 x=263 y=35 width=22 height=31 xoffset=-1 yoffset=1 xadvance=23 page=0 chnl=0 +char id=37 x=285 y=35 width=29 height=31 xoffset=-1 yoffset=0 xadvance=31 page=0 chnl=0 +char id=92 x=314 y=35 width=20 height=31 xoffset=-1 yoffset=1 xadvance=21 page=0 chnl=0 +char id=47 x=334 y=35 width=20 height=31 xoffset=-1 yoffset=1 xadvance=22 page=0 chnl=0 +char id=113 x=354 y=35 width=23 height=31 xoffset=-1 yoffset=7 xadvance=23 page=0 chnl=0 +char id=233 x=377 y=35 width=19 height=30 xoffset=0 yoffset=0 xadvance=22 page=0 chnl=0 +char id=232 x=396 y=35 width=19 height=30 xoffset=0 yoffset=0 xadvance=22 page=0 chnl=0 +char id=224 x=415 y=35 width=21 height=30 xoffset=0 yoffset=0 xadvance=23 page=0 chnl=0 +char id=198 x=436 y=35 width=30 height=30 xoffset=-1 yoffset=2 xadvance=32 page=0 chnl=0 +char id=191 x=466 y=35 width=20 height=30 xoffset=-1 yoffset=6 xadvance=21 page=0 chnl=0 +char id=112 x=486 y=35 width=20 height=30 xoffset=-1 yoffset=7 xadvance=22 page=0 chnl=0 +char id=104 x=0 y=67 width=21 height=30 xoffset=0 yoffset=0 xadvance=23 page=0 chnl=0 +char id=74 x=21 y=67 width=22 height=30 xoffset=-2 yoffset=3 xadvance=21 page=0 chnl=0 +char id=249 x=43 y=67 width=20 height=29 xoffset=0 yoffset=1 xadvance=23 page=0 chnl=0 +char id=243 x=63 y=67 width=19 height=29 xoffset=0 yoffset=1 xadvance=22 page=0 chnl=0 +char id=242 x=82 y=67 width=19 height=29 xoffset=0 yoffset=1 xadvance=22 page=0 chnl=0 +char id=238 x=101 y=67 width=17 height=29 xoffset=-2 yoffset=1 xadvance=16 page=0 chnl=0 +char id=237 x=118 y=67 width=15 height=29 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=0 +char id=236 x=133 y=67 width=14 height=29 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=0 +char id=235 x=147 y=67 width=20 height=29 xoffset=-1 yoffset=1 xadvance=22 page=0 chnl=0 +char id=234 x=167 y=67 width=20 height=29 xoffset=-1 yoffset=1 xadvance=22 page=0 chnl=0 +char id=231 x=187 y=67 width=19 height=29 xoffset=0 yoffset=8 xadvance=22 page=0 chnl=0 +char id=227 x=206 y=67 width=22 height=29 xoffset=-1 yoffset=1 xadvance=23 page=0 chnl=0 +char id=226 x=228 y=67 width=21 height=29 xoffset=0 yoffset=1 xadvance=23 page=0 chnl=0 +char id=225 x=249 y=67 width=21 height=29 xoffset=0 yoffset=1 xadvance=23 page=0 chnl=0 +char id=35 x=270 y=67 width=29 height=29 xoffset=-1 yoffset=1 xadvance=31 page=0 chnl=0 +char id=57 x=299 y=67 width=20 height=29 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0 +char id=108 x=319 y=67 width=12 height=29 xoffset=1 yoffset=2 xadvance=15 page=0 chnl=0 +char id=102 x=331 y=67 width=20 height=29 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=0 +char id=79 x=351 y=67 width=22 height=29 xoffset=-1 yoffset=2 xadvance=23 page=0 chnl=0 +char id=70 x=373 y=67 width=20 height=29 xoffset=-2 yoffset=2 xadvance=20 page=0 chnl=0 +char id=252 x=393 y=67 width=21 height=28 xoffset=-2 yoffset=2 xadvance=23 page=0 chnl=0 +char id=251 x=414 y=67 width=21 height=28 xoffset=-1 yoffset=2 xadvance=23 page=0 chnl=0 +char id=250 x=435 y=67 width=21 height=28 xoffset=0 yoffset=2 xadvance=23 page=0 chnl=0 +char id=245 x=456 y=67 width=21 height=28 xoffset=-1 yoffset=2 xadvance=22 page=0 chnl=0 +char id=244 x=477 y=67 width=20 height=28 xoffset=-1 yoffset=2 xadvance=22 page=0 chnl=0 +char id=241 x=0 y=97 width=20 height=28 xoffset=0 yoffset=2 xadvance=23 page=0 chnl=0 +char id=239 x=20 y=97 width=17 height=28 xoffset=-2 yoffset=2 xadvance=16 page=0 chnl=0 +char id=228 x=37 y=97 width=21 height=28 xoffset=0 yoffset=2 xadvance=23 page=0 chnl=0 +char id=64 x=58 y=97 width=27 height=28 xoffset=0 yoffset=3 xadvance=30 page=0 chnl=0 +char id=63 x=85 y=97 width=19 height=28 xoffset=-1 yoffset=4 xadvance=22 page=0 chnl=0 +char id=56 x=104 y=97 width=20 height=28 xoffset=0 yoffset=3 xadvance=22 page=0 chnl=0 +char id=55 x=124 y=97 width=21 height=28 xoffset=-1 yoffset=4 xadvance=22 page=0 chnl=0 +char id=121 x=145 y=97 width=20 height=28 xoffset=-1 yoffset=8 xadvance=22 page=0 chnl=0 +char id=107 x=165 y=97 width=20 height=28 xoffset=0 yoffset=2 xadvance=22 page=0 chnl=0 +char id=105 x=185 y=97 width=12 height=28 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0 +char id=103 x=197 y=97 width=20 height=28 xoffset=-1 yoffset=7 xadvance=22 page=0 chnl=0 +char id=100 x=217 y=97 width=21 height=28 xoffset=-1 yoffset=2 xadvance=22 page=0 chnl=0 +char id=98 x=238 y=97 width=21 height=28 xoffset=-1 yoffset=2 xadvance=23 page=0 chnl=0 +char id=82 x=259 y=97 width=23 height=28 xoffset=-2 yoffset=2 xadvance=23 page=0 chnl=0 +char id=80 x=282 y=97 width=22 height=28 xoffset=-2 yoffset=3 xadvance=22 page=0 chnl=0 +char id=78 x=304 y=97 width=22 height=28 xoffset=0 yoffset=2 xadvance=25 page=0 chnl=0 +char id=75 x=326 y=97 width=24 height=28 xoffset=-2 yoffset=3 xadvance=24 page=0 chnl=0 +char id=246 x=350 y=97 width=20 height=27 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0 +char id=33 x=370 y=97 width=12 height=27 xoffset=1 yoffset=2 xadvance=17 page=0 chnl=0 +char id=54 x=382 y=97 width=21 height=27 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0 +char id=49 x=403 y=97 width=15 height=27 xoffset=2 yoffset=3 xadvance=22 page=0 chnl=0 +char id=116 x=418 y=97 width=17 height=27 xoffset=-1 yoffset=4 xadvance=18 page=0 chnl=0 +char id=90 x=435 y=97 width=24 height=27 xoffset=-1 yoffset=3 xadvance=25 page=0 chnl=0 +char id=89 x=459 y=97 width=22 height=27 xoffset=-2 yoffset=3 xadvance=22 page=0 chnl=0 +char id=88 x=481 y=97 width=23 height=27 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0 +char id=87 x=0 y=125 width=29 height=27 xoffset=-1 yoffset=4 xadvance=30 page=0 chnl=0 +char id=86 x=29 y=125 width=23 height=27 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=0 +char id=84 x=52 y=125 width=23 height=27 xoffset=-2 yoffset=3 xadvance=22 page=0 chnl=0 +char id=83 x=75 y=125 width=22 height=27 xoffset=-2 yoffset=3 xadvance=23 page=0 chnl=0 +char id=73 x=97 y=125 width=18 height=27 xoffset=-1 yoffset=4 xadvance=19 page=0 chnl=0 +char id=72 x=115 y=125 width=23 height=27 xoffset=-2 yoffset=3 xadvance=24 page=0 chnl=0 +char id=71 x=138 y=125 width=23 height=27 xoffset=-2 yoffset=3 xadvance=23 page=0 chnl=0 +char id=69 x=161 y=125 width=22 height=27 xoffset=-2 yoffset=3 xadvance=22 page=0 chnl=0 +char id=68 x=183 y=125 width=23 height=27 xoffset=-1 yoffset=4 xadvance=23 page=0 chnl=0 +char id=67 x=206 y=125 width=21 height=27 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0 +char id=66 x=227 y=125 width=21 height=27 xoffset=-1 yoffset=3 xadvance=22 page=0 chnl=0 +char id=65 x=248 y=125 width=22 height=27 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0 +char id=248 x=270 y=125 width=20 height=26 xoffset=-1 yoffset=6 xadvance=22 page=0 chnl=0 +char id=48 x=290 y=125 width=21 height=26 xoffset=-1 yoffset=4 xadvance=22 page=0 chnl=0 +char id=53 x=311 y=125 width=20 height=26 xoffset=0 yoffset=4 xadvance=22 page=0 chnl=0 +char id=52 x=331 y=125 width=21 height=26 xoffset=-1 yoffset=4 xadvance=22 page=0 chnl=0 +char id=51 x=352 y=125 width=21 height=26 xoffset=-1 yoffset=4 xadvance=22 page=0 chnl=0 +char id=85 x=373 y=125 width=21 height=26 xoffset=-1 yoffset=4 xadvance=22 page=0 chnl=0 +char id=77 x=394 y=125 width=27 height=26 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0 +char id=50 x=421 y=125 width=21 height=25 xoffset=0 yoffset=4 xadvance=22 page=0 chnl=0 +char id=76 x=442 y=125 width=20 height=25 xoffset=-1 yoffset=4 xadvance=21 page=0 chnl=0 +char id=59 x=462 y=125 width=12 height=23 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=0 +char id=122 x=474 y=125 width=20 height=23 xoffset=-1 yoffset=8 xadvance=21 page=0 chnl=0 +char id=120 x=0 y=152 width=21 height=23 xoffset=-1 yoffset=8 xadvance=22 page=0 chnl=0 +char id=115 x=21 y=152 width=18 height=23 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0 +char id=101 x=39 y=152 width=20 height=23 xoffset=-1 yoffset=7 xadvance=20 page=0 chnl=0 +char id=230 x=59 y=152 width=28 height=22 xoffset=0 yoffset=8 xadvance=30 page=0 chnl=0 +char id=58 x=87 y=152 width=12 height=22 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=0 +char id=119 x=99 y=152 width=27 height=22 xoffset=-1 yoffset=9 xadvance=28 page=0 chnl=0 +char id=114 x=126 y=152 width=18 height=22 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0 +char id=111 x=144 y=152 width=20 height=22 xoffset=-1 yoffset=8 xadvance=21 page=0 chnl=0 +char id=109 x=164 y=152 width=25 height=22 xoffset=0 yoffset=8 xadvance=29 page=0 chnl=0 +char id=99 x=189 y=152 width=19 height=22 xoffset=-1 yoffset=8 xadvance=21 page=0 chnl=0 +char id=97 x=208 y=152 width=21 height=22 xoffset=-1 yoffset=8 xadvance=22 page=0 chnl=0 +char id=43 x=229 y=152 width=20 height=21 xoffset=0 yoffset=8 xadvance=23 page=0 chnl=0 +char id=118 x=249 y=152 width=21 height=21 xoffset=-2 yoffset=9 xadvance=21 page=0 chnl=0 +char id=117 x=270 y=152 width=21 height=21 xoffset=-1 yoffset=9 xadvance=22 page=0 chnl=0 +char id=110 x=291 y=152 width=19 height=21 xoffset=0 yoffset=9 xadvance=22 page=0 chnl=0 +char id=62 x=310 y=152 width=17 height=19 xoffset=0 yoffset=9 xadvance=21 page=0 chnl=0 +char id=60 x=327 y=152 width=17 height=19 xoffset=0 yoffset=9 xadvance=21 page=0 chnl=0 +char id=61 x=344 y=152 width=18 height=16 xoffset=1 yoffset=11 xadvance=23 page=0 chnl=0 +char id=94 x=362 y=152 width=18 height=14 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=0 +char id=44 x=380 y=152 width=12 height=14 xoffset=0 yoffset=19 xadvance=15 page=0 chnl=0 +char id=39 x=392 y=152 width=10 height=13 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0 +char id=34 x=402 y=152 width=17 height=13 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0 +char id=96 x=419 y=152 width=14 height=12 xoffset=-2 yoffset=2 xadvance=14 page=0 chnl=0 +char id=46 x=433 y=152 width=12 height=11 xoffset=1 yoffset=18 xadvance=16 page=0 chnl=0 +char id=45 x=445 y=152 width=17 height=10 xoffset=0 yoffset=13 xadvance=20 page=0 chnl=0 +char id=95 x=462 y=152 width=27 height=9 xoffset=0 yoffset=24 xadvance=30 page=0 chnl=0 diff --git a/assets/font/BitmapFont.png b/assets/font/BitmapFont.png new file mode 100644 index 0000000000000000000000000000000000000000..b283bb8e96936d5779194e5ca19fe4662d382c16 GIT binary patch literal 77612 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≻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

*#?pyy?uuAPITX|MFtT&ZK;*eZg|IJAt#G;Q5$ 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 literal 0 HcmV?d00001 diff --git a/src/org/anddev/andengine/examples/AnalogOnScreenControlExample.java b/src/org/anddev/andengine/examples/AnalogOnScreenControlExample.java index 3bb90f4..690b1df 100644 --- a/src/org/anddev/andengine/examples/AnalogOnScreenControlExample.java +++ b/src/org/anddev/andengine/examples/AnalogOnScreenControlExample.java @@ -15,7 +15,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -77,12 +76,12 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mOnScreenControlTexture); + this.mOnScreenControlTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/AnalogOnScreenControlsExample.java b/src/org/anddev/andengine/examples/AnalogOnScreenControlsExample.java index cdff5f0..033fc40 100644 --- a/src/org/anddev/andengine/examples/AnalogOnScreenControlsExample.java +++ b/src/org/anddev/andengine/examples/AnalogOnScreenControlsExample.java @@ -16,7 +16,6 @@ import org.anddev.andengine.extension.input.touch.controller.MultiTouch; import org.anddev.andengine.extension.input.touch.controller.MultiTouchController; import org.anddev.andengine.extension.input.touch.exception.MultiTouchException; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -98,12 +97,12 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mOnScreenControlTexture); + this.mOnScreenControlTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/AnimatedSpritesExample.java b/src/org/anddev/andengine/examples/AnimatedSpritesExample.java index 0a5c20d..f560e26 100644 --- a/src/org/anddev/andengine/examples/AnimatedSpritesExample.java +++ b/src/org/anddev/andengine/examples/AnimatedSpritesExample.java @@ -9,7 +9,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -63,15 +62,14 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(512, 256, TextureOptions.BILINEAR); - BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(512, 256, TextureOptions.BILINEAR); this.mSnapdragonTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "snapdragon_tiled.png", 0, 0, 4, 3); this.mHelicopterTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "helicopter_tiled.png", 400, 0, 2, 2); this.mBananaTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "banana_tiled.png", 0, 180, 4, 2); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 132, 180, 2, 1); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/AugmentedRealityExample.java b/src/org/anddev/andengine/examples/AugmentedRealityExample.java index 4c7dcf7..fd4ac4c 100644 --- a/src/org/anddev/andengine/examples/AugmentedRealityExample.java +++ b/src/org/anddev/andengine/examples/AugmentedRealityExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.extension.augmentedreality.BaseAugmentedRealityGameActivity; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -63,11 +62,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/AugmentedRealityHorizonExample.java b/src/org/anddev/andengine/examples/AugmentedRealityHorizonExample.java index a10b67f..7dfa9d5 100644 --- a/src/org/anddev/andengine/examples/AugmentedRealityHorizonExample.java +++ b/src/org/anddev/andengine/examples/AugmentedRealityHorizonExample.java @@ -10,14 +10,13 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.extension.augmentedreality.BaseAugmentedRealityGameActivity; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.sensor.orientation.IOrientationListener; import org.anddev.andengine.sensor.orientation.OrientationData; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.widget.Toast; @@ -66,11 +65,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/AutoParallaxBackgroundExample.java b/src/org/anddev/andengine/examples/AutoParallaxBackgroundExample.java index be1dc82..8623036 100644 --- a/src/org/anddev/andengine/examples/AutoParallaxBackgroundExample.java +++ b/src/org/anddev/andengine/examples/AutoParallaxBackgroundExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -74,13 +73,13 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "player.png", 0, 0, 3, 4); this.mEnemyTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "enemy.png", 73, 0, 3, 4); + this.mBitmapTextureAtlas.load(); this.mAutoParallaxBackgroundTexture = new BitmapTextureAtlas(1024, 1024, TextureOptions.DEFAULT); this.mParallaxLayerFront = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mAutoParallaxBackgroundTexture, this, "parallax_background_layer_front.png", 0, 0); this.mParallaxLayerBack = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mAutoParallaxBackgroundTexture, this, "parallax_background_layer_back.png", 0, 188); this.mParallaxLayerMid = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mAutoParallaxBackgroundTexture, this, "parallax_background_layer_mid.png", 0, 669); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mAutoParallaxBackgroundTexture); + this.mAutoParallaxBackgroundTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/BasePhysicsJointExample.java b/src/org/anddev/andengine/examples/BasePhysicsJointExample.java index c9e10cd..f2f2db7 100644 --- a/src/org/anddev/andengine/examples/BasePhysicsJointExample.java +++ b/src/org/anddev/andengine/examples/BasePhysicsJointExample.java @@ -16,14 +16,13 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITiledTextureRegion; import org.anddev.andengine.sensor.accelerometer.AccelerometerData; import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import org.anddev.andengine.util.math.MathUtils; import android.hardware.SensorManager; @@ -85,11 +84,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/BoundCameraExample.java b/src/org/anddev/andengine/examples/BoundCameraExample.java index 8359831..993ee33 100644 --- a/src/org/anddev/andengine/examples/BoundCameraExample.java +++ b/src/org/anddev/andengine/examples/BoundCameraExample.java @@ -19,7 +19,6 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -95,11 +94,11 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); this.mHUDTexture = new BitmapTextureAtlas(256, 128,TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mToggleButtonTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mHUDTexture, this, "toggle_button.png", 0, 0, 2, 1); // 256x128 - TextureManager.loadTexture(this.mHUDTexture); + this.mHUDTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/ChangeableTextExample.java b/src/org/anddev/andengine/examples/ChangeableTextExample.java index 11de4c8..4b4b3e3 100644 --- a/src/org/anddev/andengine/examples/ChangeableTextExample.java +++ b/src/org/anddev/andengine/examples/ChangeableTextExample.java @@ -12,12 +12,10 @@ import org.anddev.andengine.entity.text.ChangeableText; import org.anddev.andengine.entity.util.FPSCounter; import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; -import android.graphics.Color; import android.graphics.Typeface; /** @@ -40,7 +38,6 @@ public class ChangeableTextExample extends BaseExample { // =========================================================== private Camera mCamera; - private BitmapTextureAtlas mFontTexture; private Font mFont; // =========================================================== @@ -63,12 +60,9 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture fontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 48, true, Color.BLACK); - - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); + this.mFont = new Font(fontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 48).load(); } @Override diff --git a/src/org/anddev/andengine/examples/CollisionDetectionExample.java b/src/org/anddev/andengine/examples/CollisionDetectionExample.java index 21b866b..633c29f 100644 --- a/src/org/anddev/andengine/examples/CollisionDetectionExample.java +++ b/src/org/anddev/andengine/examples/CollisionDetectionExample.java @@ -24,7 +24,6 @@ import org.anddev.andengine.extension.input.touch.controller.MultiTouch; import org.anddev.andengine.extension.input.touch.controller.MultiTouchController; import org.anddev.andengine.extension.input.touch.exception.MultiTouchException; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -106,12 +105,12 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mOnScreenControlTexture); + this.mOnScreenControlTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/ColorKeyTextureSourceDecoratorExample.java b/src/org/anddev/andengine/examples/ColorKeyTextureSourceDecoratorExample.java index 3d65d5a..49f0e2a 100644 --- a/src/org/anddev/andengine/examples/ColorKeyTextureSourceDecoratorExample.java +++ b/src/org/anddev/andengine/examples/ColorKeyTextureSourceDecoratorExample.java @@ -8,7 +8,6 @@ import org.anddev.andengine.entity.scene.Scene; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -81,7 +80,7 @@ public void onLoadResources() { this.mChromaticCircleColorKeyedTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromSource(this.mBitmapTextureAtlas, colorKeyBitmapTextureAtlasSource, 128, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/CoordinateConversionExample.java b/src/org/anddev/andengine/examples/CoordinateConversionExample.java index a729182..5ccbfe9 100644 --- a/src/org/anddev/andengine/examples/CoordinateConversionExample.java +++ b/src/org/anddev/andengine/examples/CoordinateConversionExample.java @@ -20,7 +20,6 @@ import org.anddev.andengine.extension.input.touch.controller.MultiTouch; import org.anddev.andengine.extension.input.touch.controller.MultiTouchController; import org.anddev.andengine.extension.input.touch.exception.MultiTouchException; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -105,12 +104,12 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mOnScreenControlTexture); + this.mOnScreenControlTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/CustomFontExample.java b/src/org/anddev/andengine/examples/CustomFontExample.java index fff5013..5593a27 100644 --- a/src/org/anddev/andengine/examples/CustomFontExample.java +++ b/src/org/anddev/andengine/examples/CustomFontExample.java @@ -11,8 +11,7 @@ import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.opengl.font.Font; import org.anddev.andengine.opengl.font.FontFactory; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; @@ -48,12 +47,6 @@ public class CustomFontExample extends BaseExample { private Font mUnrealTournamenFont; private Font mKingdomOfHeartsFont; - private BitmapTextureAtlas mDroidFontTexture; - private BitmapTextureAtlas mPlokFontTexture; - private BitmapTextureAtlas mNeverwinterNightsFontTexture; - private BitmapTextureAtlas mUnrealTournamentFontTexture; - private BitmapTextureAtlas mKingdomOfHeartsFontTexture; - // =========================================================== // Constructors // =========================================================== @@ -75,21 +68,18 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { /* The custom fonts. */ - this.mDroidFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mKingdomOfHeartsFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mNeverwinterNightsFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mPlokFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mUnrealTournamentFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture droidFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture kingdomOfHeartsFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture neverwinterNightsFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture plokFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture unrealTournamentFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); FontFactory.setAssetBasePath("font/"); - this.mDroidFont = FontFactory.createFromAsset(this.mDroidFontTexture, this, "Droid.ttf", FONT_SIZE, true, Color.BLACK); - this.mKingdomOfHeartsFont = FontFactory.createFromAsset(this.mKingdomOfHeartsFontTexture, this, "KingdomOfHearts.ttf", FONT_SIZE + 20, true, Color.BLACK); - this.mNeverwinterNightsFont = FontFactory.createFromAsset(this.mNeverwinterNightsFontTexture, this, "NeverwinterNights.ttf", FONT_SIZE, true, Color.BLACK); - this.mPlokFont = FontFactory.createFromAsset(this.mPlokFontTexture, this, "Plok.ttf", FONT_SIZE, true, Color.BLACK); - this.mUnrealTournamenFont = FontFactory.createFromAsset(this.mUnrealTournamentFontTexture, this, "UnrealTournament.ttf", FONT_SIZE, true, Color.BLACK); - - TextureManager.loadTextures(this.mDroidFontTexture, this.mKingdomOfHeartsFontTexture, this.mNeverwinterNightsFontTexture, this.mPlokFontTexture, this.mUnrealTournamentFontTexture); - FontManager.loadFonts(this.mDroidFont, this.mKingdomOfHeartsFont, this.mNeverwinterNightsFont, this.mPlokFont, this.mUnrealTournamenFont); + this.mDroidFont = FontFactory.createFromAsset(droidFontTexture, this, "Droid.ttf", FONT_SIZE, true, Color.BLACK).load(); + this.mKingdomOfHeartsFont = FontFactory.createFromAsset(kingdomOfHeartsFontTexture, this, "KingdomOfHearts.ttf", FONT_SIZE + 20, true, Color.BLACK).load(); + this.mNeverwinterNightsFont = FontFactory.createFromAsset(neverwinterNightsFontTexture, this, "NeverwinterNights.ttf", FONT_SIZE, true, Color.BLACK).load(); + this.mPlokFont = FontFactory.createFromAsset(plokFontTexture, this, "Plok.ttf", FONT_SIZE, true, Color.BLACK).load(); + this.mUnrealTournamenFont = FontFactory.createFromAsset(unrealTournamentFontTexture, this, "UnrealTournament.ttf", FONT_SIZE, true, Color.BLACK).load(); } @Override diff --git a/src/org/anddev/andengine/examples/DigitalOnScreenControlExample.java b/src/org/anddev/andengine/examples/DigitalOnScreenControlExample.java index 6cc5c8a..1dddd9e 100644 --- a/src/org/anddev/andengine/examples/DigitalOnScreenControlExample.java +++ b/src/org/anddev/andengine/examples/DigitalOnScreenControlExample.java @@ -13,7 +13,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -79,12 +78,12 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mOnScreenControlTexture); + this.mOnScreenControlTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/ETC1TextureExample.java b/src/org/anddev/andengine/examples/ETC1TextureExample.java index df1b5e1..3a2015e 100644 --- a/src/org/anddev/andengine/examples/ETC1TextureExample.java +++ b/src/org/anddev/andengine/examples/ETC1TextureExample.java @@ -16,12 +16,11 @@ import org.anddev.andengine.examples.adt.ZoomState; import org.anddev.andengine.input.touch.TouchEvent; import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.compressed.etc1.ETC1Texture; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.opengl.texture.region.TextureRegionFactory; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.widget.Toast; @@ -91,11 +90,10 @@ public void onLoadResources() { protected InputStream getInputStream() throws IOException { return ETC1TextureExample.this.getResources().openRawResource(R.raw.house_etc1); } - }; + }.load(); this.mHouseTextureRegion = TextureRegionFactory.extractFromTexture(this.mTexture, 0, 0, 512, 512, true); - TextureManager.loadTextures(this.mTexture); } catch (final Throwable e) { Debug.e(e); } diff --git a/src/org/anddev/andengine/examples/EaseFunctionExample.java b/src/org/anddev/andengine/examples/EaseFunctionExample.java index c2c69c5..79763ec 100644 --- a/src/org/anddev/andengine/examples/EaseFunctionExample.java +++ b/src/org/anddev/andengine/examples/EaseFunctionExample.java @@ -14,8 +14,7 @@ import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -80,7 +79,6 @@ public class EaseFunctionExample extends BaseExample { private Camera mCamera; - private BitmapTextureAtlas mFontTexture; private Font mFont; private BitmapTextureAtlas mBitmapTextureAtlas; @@ -176,12 +174,8 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { /* The font. */ - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - - this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.WHITE); - - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); + final ITexture fontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFont = new Font(fontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.WHITE).load(); /* The textures. */ this.mBitmapTextureAtlas = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); @@ -189,7 +183,7 @@ public void onLoadResources() { this.mNextTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "next.png", 0, 0); this.mBadgeTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "badge.png", 97, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/EntityModifierExample.java b/src/org/anddev/andengine/examples/EntityModifierExample.java index 0e4ceaa..f675304 100644 --- a/src/org/anddev/andengine/examples/EntityModifierExample.java +++ b/src/org/anddev/andengine/examples/EntityModifierExample.java @@ -22,7 +22,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -76,11 +75,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/EntityModifierIrregularExample.java b/src/org/anddev/andengine/examples/EntityModifierIrregularExample.java index 6c9d181..64af5ea 100644 --- a/src/org/anddev/andengine/examples/EntityModifierIrregularExample.java +++ b/src/org/anddev/andengine/examples/EntityModifierIrregularExample.java @@ -16,7 +16,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -69,11 +68,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/ImageFormatsExample.java b/src/org/anddev/andengine/examples/ImageFormatsExample.java index 0d9d081..463640e 100644 --- a/src/org/anddev/andengine/examples/ImageFormatsExample.java +++ b/src/org/anddev/andengine/examples/ImageFormatsExample.java @@ -9,7 +9,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.ITextureAtlas; import org.anddev.andengine.opengl.texture.atlas.ITextureAtlas.ITextureAtlasStateListener; @@ -67,7 +66,9 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA, new ITextureAtlasStateListener.TextureAtlasStateAdapter() { + BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + final ITextureAtlasStateListener.TextureAtlasStateAdapter textureAtlasStateListener = new ITextureAtlasStateListener.TextureAtlasStateAdapter() { @Override public void onTextureAtlasSourceLoadExeption(final ITextureAtlas pTextureAtlas, final IBitmapTextureAtlasSource pBitmapTextureAtlasSource, final Throwable pThrowable) { ImageFormatsExample.this.runOnUiThread(new Runnable() { @@ -77,15 +78,14 @@ public void run() { } }); } - }); + }; - BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA, textureAtlasStateListener); this.mPNGTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "imageformat_png.png", 0, 0); this.mJPGTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "imageformat_jpg.jpg", 49, 0); this.mGIFTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "imageformat_gif.gif", 0, 49); this.mBMPTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "imageformat_bmp.bmp", 49, 49); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/LevelLoaderExample.java b/src/org/anddev/andengine/examples/LevelLoaderExample.java index 9e8c64a..fb31df8 100644 --- a/src/org/anddev/andengine/examples/LevelLoaderExample.java +++ b/src/org/anddev/andengine/examples/LevelLoaderExample.java @@ -14,13 +14,12 @@ import org.anddev.andengine.level.LevelLoader; import org.anddev.andengine.level.LevelLoader.IEntityLoader; import org.anddev.andengine.level.util.constants.LevelConstants; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; -import org.anddev.andengine.util.Debug; import org.anddev.andengine.util.SAXUtils; +import org.anddev.andengine.util.debug.Debug; import org.xml.sax.Attributes; import android.widget.Toast; @@ -84,17 +83,14 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - /* Textures. */ - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - /* TextureRegions. */ + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 this.mTriangleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_triangle_tiled.png", 0, 64, 2, 1); // 64x32 this.mHexagonFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_hexagon_tiled.png", 0, 96, 2, 1); // 64x32 - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/LoadTextureExample.java b/src/org/anddev/andengine/examples/LoadTextureExample.java index a860445..adb024f 100644 --- a/src/org/anddev/andengine/examples/LoadTextureExample.java +++ b/src/org/anddev/andengine/examples/LoadTextureExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -98,11 +97,11 @@ public void onLoadComplete() { // =========================================================== private void loadNewTexture() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - final ITextureRegion faceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITextureRegion faceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); final float x = (CAMERA_WIDTH - faceTextureRegion.getWidth()) * MathUtils.RANDOM.nextFloat(); final float y = (CAMERA_HEIGHT - faceTextureRegion.getHeight()) * MathUtils.RANDOM.nextFloat(); diff --git a/src/org/anddev/andengine/examples/MenuExample.java b/src/org/anddev/andengine/examples/MenuExample.java index bbe5770..8f1d852 100644 --- a/src/org/anddev/andengine/examples/MenuExample.java +++ b/src/org/anddev/andengine/examples/MenuExample.java @@ -14,7 +14,6 @@ import org.anddev.andengine.entity.scene.menu.item.SpriteMenuItem; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -82,12 +81,12 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box_menu.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); this.mMenuTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mMenuResetTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mMenuTexture, this, "menu_reset.png", 0, 0); this.mMenuQuitTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mMenuTexture, this, "menu_quit.png", 0, 50); - TextureManager.loadTexture(this.mMenuTexture); + this.mMenuTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/ModPlayerExample.java b/src/org/anddev/andengine/examples/ModPlayerExample.java index d4604eb..b5c4966 100644 --- a/src/org/anddev/andengine/examples/ModPlayerExample.java +++ b/src/org/anddev/andengine/examples/ModPlayerExample.java @@ -14,7 +14,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -73,9 +72,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.DEFAULT); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.DEFAULT); this.mILove8BitTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "i_love_8_bit.png", 0, 0); + this.mBitmapTextureAtlas.load(); if(FileUtils.isFileExistingOnExternalStorage(this, SAMPLE_MOD_DIRECTORY + SAMPLE_MOD_FILENAME)) { this.startPlayingMod(); @@ -94,8 +95,6 @@ public void onCallback(final Void pCallbackValue) { } }); } - - TextureManager.loadTexture(this.mBitmapTextureAtlas); } @Override diff --git a/src/org/anddev/andengine/examples/MovingBallExample.java b/src/org/anddev/andengine/examples/MovingBallExample.java index 5d703f4..bc0fd49 100644 --- a/src/org/anddev/andengine/examples/MovingBallExample.java +++ b/src/org/anddev/andengine/examples/MovingBallExample.java @@ -10,7 +10,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -62,11 +61,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 0, 2, 1); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 0, 2, 1); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/MultiTouchExample.java b/src/org/anddev/andengine/examples/MultiTouchExample.java index baf3e9a..6aca950 100644 --- a/src/org/anddev/andengine/examples/MultiTouchExample.java +++ b/src/org/anddev/andengine/examples/MultiTouchExample.java @@ -16,7 +16,6 @@ import org.anddev.andengine.extension.input.touch.controller.MultiTouchController; import org.anddev.andengine.extension.input.touch.exception.MultiTouchException; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -88,10 +87,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mCardDeckTexture = new BitmapTextureAtlas(1024, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mCardDeckTexture = new BitmapTextureAtlas(1024, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mCardDeckTexture, this, "carddeck_tiled.png", 0, 0); + this.mCardDeckTexture.load(); this.mCardTotextureRegionMap = new HashMap(); @@ -100,8 +100,6 @@ public void onLoadResources() { final ITextureRegion cardTextureRegion = TextureRegionFactory.extractFromTexture(this.mCardDeckTexture, card.getTexturePositionX(), card.getTexturePositionY(), Card.CARD_WIDTH, Card.CARD_HEIGHT, true); this.mCardTotextureRegionMap.put(card, cardTextureRegion); } - - TextureManager.loadTexture(this.mCardDeckTexture); } @Override diff --git a/src/org/anddev/andengine/examples/MultiplayerBluetoothExample.java b/src/org/anddev/andengine/examples/MultiplayerBluetoothExample.java index f6d053e..f7a9fba 100644 --- a/src/org/anddev/andengine/examples/MultiplayerBluetoothExample.java +++ b/src/org/anddev/andengine/examples/MultiplayerBluetoothExample.java @@ -36,12 +36,11 @@ import org.anddev.andengine.extension.multiplayer.protocol.shared.BluetoothSocketConnection; import org.anddev.andengine.extension.multiplayer.protocol.util.MessagePool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.app.AlertDialog; import android.app.Dialog; @@ -223,11 +222,11 @@ public boolean onKeyUp(final int pKeyCode, final KeyEvent pEvent) { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/MultiplayerExample.java b/src/org/anddev/andengine/examples/MultiplayerExample.java index 4165cb2..818dbe3 100644 --- a/src/org/anddev/andengine/examples/MultiplayerExample.java +++ b/src/org/anddev/andengine/examples/MultiplayerExample.java @@ -37,12 +37,11 @@ import org.anddev.andengine.extension.multiplayer.protocol.util.MessagePool; import org.anddev.andengine.extension.multiplayer.protocol.util.WifiUtils; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.app.AlertDialog; import android.app.Dialog; @@ -128,11 +127,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/MultiplayerServerDiscoveryExample.java b/src/org/anddev/andengine/examples/MultiplayerServerDiscoveryExample.java index c8ef44e..6038a3c 100644 --- a/src/org/anddev/andengine/examples/MultiplayerServerDiscoveryExample.java +++ b/src/org/anddev/andengine/examples/MultiplayerServerDiscoveryExample.java @@ -45,12 +45,11 @@ import org.anddev.andengine.extension.multiplayer.protocol.util.MessagePool; import org.anddev.andengine.extension.multiplayer.protocol.util.WifiUtils; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.app.AlertDialog; import android.app.Dialog; @@ -135,11 +134,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/MusicExample.java b/src/org/anddev/andengine/examples/MusicExample.java index 5f804d1..44b4dc6 100644 --- a/src/org/anddev/andengine/examples/MusicExample.java +++ b/src/org/anddev/andengine/examples/MusicExample.java @@ -16,12 +16,11 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.widget.Toast; @@ -70,9 +69,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mNotesTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "notes.png", 0, 0); + this.mBitmapTextureAtlas.load(); MusicFactory.setAssetBasePath("mfx/"); try { @@ -82,7 +83,6 @@ public void onLoadResources() { Debug.e(e); } - TextureManager.loadTexture(this.mBitmapTextureAtlas); } @Override diff --git a/src/org/anddev/andengine/examples/PVRCCZTextureExample.java b/src/org/anddev/andengine/examples/PVRCCZTextureExample.java index 5e98e34..5610b8f 100644 --- a/src/org/anddev/andengine/examples/PVRCCZTextureExample.java +++ b/src/org/anddev/andengine/examples/PVRCCZTextureExample.java @@ -16,13 +16,12 @@ import org.anddev.andengine.examples.adt.ZoomState; import org.anddev.andengine.input.touch.TouchEvent; import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.compressed.pvr.PVRCCZTexture; import org.anddev.andengine.opengl.texture.compressed.pvr.PVRTexture.PVRTextureFormat; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.opengl.texture.region.TextureRegionFactory; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.widget.Toast; @@ -92,11 +91,9 @@ public void onLoadResources() { protected InputStream onGetInputStream() throws IOException { return PVRCCZTextureExample.this.getResources().openRawResource(R.raw.house_pvrccz_argb_8888); } - }; + }.load(); this.mHouseTextureRegion = TextureRegionFactory.extractFromTexture(this.mTexture, 0, 0, 512, 512, true); - - TextureManager.loadTextures(this.mTexture); } catch (final Throwable e) { Debug.e(e); } diff --git a/src/org/anddev/andengine/examples/PVRGZTextureExample.java b/src/org/anddev/andengine/examples/PVRGZTextureExample.java index 5057987..3f3e193 100644 --- a/src/org/anddev/andengine/examples/PVRGZTextureExample.java +++ b/src/org/anddev/andengine/examples/PVRGZTextureExample.java @@ -16,13 +16,12 @@ import org.anddev.andengine.examples.adt.ZoomState; import org.anddev.andengine.input.touch.TouchEvent; import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.compressed.pvr.PVRGZTexture; import org.anddev.andengine.opengl.texture.compressed.pvr.PVRTexture.PVRTextureFormat; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.opengl.texture.region.TextureRegionFactory; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.widget.Toast; @@ -92,11 +91,9 @@ public void onLoadResources() { protected InputStream onGetInputStream() throws IOException { return PVRGZTextureExample.this.getResources().openRawResource(R.raw.house_pvrgz_argb_8888); } - }; + }.load(); this.mHouseTextureRegion = TextureRegionFactory.extractFromTexture(this.mTexture, 0, 0, 512, 512, true); - - TextureManager.loadTextures(this.mTexture); } catch (final Throwable e) { Debug.e(e); } diff --git a/src/org/anddev/andengine/examples/PVRTextureExample.java b/src/org/anddev/andengine/examples/PVRTextureExample.java index 2686b7d..d0013e8 100644 --- a/src/org/anddev/andengine/examples/PVRTextureExample.java +++ b/src/org/anddev/andengine/examples/PVRTextureExample.java @@ -17,13 +17,12 @@ import org.anddev.andengine.examples.adt.ZoomState; import org.anddev.andengine.input.touch.TouchEvent; import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.compressed.pvr.PVRTexture; import org.anddev.andengine.opengl.texture.compressed.pvr.PVRTexture.PVRTextureFormat; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.opengl.texture.region.TextureRegionFactory; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.opengl.GLES20; import android.widget.Toast; @@ -102,35 +101,33 @@ public void onLoadResources() { protected InputStream onGetInputStream() throws IOException { return PVRTextureExample.this.getResources().openRawResource(R.raw.house_pvr_rgb_565); } - }; + }.load(); this.mTextureRGBA5551 = new PVRTexture(PVRTextureFormat.RGBA_5551, new TextureOptions(GLES20.GL_LINEAR, GLES20.GL_LINEAR, GLES20.GL_CLAMP_TO_EDGE, GLES20.GL_CLAMP_TO_EDGE, false)) { @Override protected InputStream onGetInputStream() throws IOException { return PVRTextureExample.this.getResources().openRawResource(R.raw.house_pvr_argb_5551); } - }; + }.load(); this.mTextureARGB4444 = new PVRTexture(PVRTextureFormat.RGBA_4444, new TextureOptions(GLES20.GL_LINEAR, GLES20.GL_LINEAR, GLES20.GL_CLAMP_TO_EDGE, GLES20.GL_CLAMP_TO_EDGE, false)) { @Override protected InputStream onGetInputStream() throws IOException { return PVRTextureExample.this.getResources().openRawResource(R.raw.house_pvr_argb_4444); } - }; + }.load(); this.mTextureRGBA888MipMaps = new PVRTexture(PVRTextureFormat.RGBA_8888, new TextureOptions(GLES20.GL_LINEAR_MIPMAP_LINEAR, GLES20.GL_LINEAR, GLES20.GL_CLAMP_TO_EDGE, GLES20.GL_CLAMP_TO_EDGE, false)) { @Override protected InputStream onGetInputStream() throws IOException { return PVRTextureExample.this.getResources().openRawResource(R.raw.house_pvr_argb_8888_mipmaps); } - }; + }.load(); this.mHouseNearestTextureRegion = TextureRegionFactory.extractFromTexture(this.mTextureRGB565, 0, 0, 512, 512, true); this.mHouseLinearTextureRegion = TextureRegionFactory.extractFromTexture(this.mTextureRGBA5551, 0, 0, 512, 512, true); this.mHouseMipMapsNearestTextureRegion = TextureRegionFactory.extractFromTexture(this.mTextureARGB4444, 0, 0, 512, 512, true); this.mHouseMipMapsLinearTextureRegion = TextureRegionFactory.extractFromTexture(this.mTextureRGBA888MipMaps, 0, 0, 512, 512, true); - - TextureManager.loadTextures(this.mTextureRGB565, this.mTextureRGBA5551, this.mTextureARGB4444, this.mTextureRGBA888MipMaps); } catch (final Throwable e) { Debug.e(e); } diff --git a/src/org/anddev/andengine/examples/PathModifierExample.java b/src/org/anddev/andengine/examples/PathModifierExample.java index 46da987..0e2a4a8 100644 --- a/src/org/anddev/andengine/examples/PathModifierExample.java +++ b/src/org/anddev/andengine/examples/PathModifierExample.java @@ -13,13 +13,12 @@ import org.anddev.andengine.entity.scene.Scene; import org.anddev.andengine.entity.scene.background.RepeatingSpriteBackground; import org.anddev.andengine.entity.sprite.AnimatedSprite; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.atlas.bitmap.source.AssetBitmapTextureAtlasSource; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import org.anddev.andengine.util.modifier.ease.EaseSineInOut; import android.widget.Toast; @@ -71,12 +70,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.DEFAULT); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.DEFAULT); this.mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "player.png", 0, 0, 3, 4); this.mGrassBackground = new RepeatingSpriteBackground(CAMERA_WIDTH, CAMERA_HEIGHT, new AssetBitmapTextureAtlasSource(this, "gfx/background_grass.png")); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PauseExample.java b/src/org/anddev/andengine/examples/PauseExample.java index 6093668..11b26f2 100644 --- a/src/org/anddev/andengine/examples/PauseExample.java +++ b/src/org/anddev/andengine/examples/PauseExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -65,12 +64,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mPausedTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "paused.png", 0, 0); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box_menu.png", 0, 50); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PhysicsCollisionFilteringExample.java b/src/org/anddev/andengine/examples/PhysicsCollisionFilteringExample.java index 6668b03..ce3f5a6 100644 --- a/src/org/anddev/andengine/examples/PhysicsCollisionFilteringExample.java +++ b/src/org/anddev/andengine/examples/PhysicsCollisionFilteringExample.java @@ -16,14 +16,13 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; import org.anddev.andengine.sensor.accelerometer.AccelerometerData; import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.hardware.SensorManager; import android.widget.Toast; @@ -98,14 +97,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - /* Textures. */ - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - /* TextureRegions. */ + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PhysicsExample.java b/src/org/anddev/andengine/examples/PhysicsExample.java index 96387dc..7af145d 100644 --- a/src/org/anddev/andengine/examples/PhysicsExample.java +++ b/src/org/anddev/andengine/examples/PhysicsExample.java @@ -19,14 +19,13 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; import org.anddev.andengine.sensor.accelerometer.AccelerometerData; import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.hardware.SensorManager; import android.widget.Toast; @@ -91,16 +90,14 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - /* Textures. */ - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - /* TextureRegions. */ + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 this.mTriangleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_triangle_tiled.png", 0, 64, 2, 1); // 64x32 this.mHexagonFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_hexagon_tiled.png", 0, 96, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PhysicsFixedStepExample.java b/src/org/anddev/andengine/examples/PhysicsFixedStepExample.java index 52ab6b4..c4b6b11 100644 --- a/src/org/anddev/andengine/examples/PhysicsFixedStepExample.java +++ b/src/org/anddev/andengine/examples/PhysicsFixedStepExample.java @@ -17,14 +17,13 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; import org.anddev.andengine.sensor.accelerometer.AccelerometerData; import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.hardware.SensorManager; import android.widget.Toast; @@ -85,11 +84,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PhysicsJumpExample.java b/src/org/anddev/andengine/examples/PhysicsJumpExample.java index 6bd6049..e38f740 100644 --- a/src/org/anddev/andengine/examples/PhysicsJumpExample.java +++ b/src/org/anddev/andengine/examples/PhysicsJumpExample.java @@ -18,7 +18,6 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -87,11 +86,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PhysicsMouseJointExample.java b/src/org/anddev/andengine/examples/PhysicsMouseJointExample.java index bf80e1b..8ba9770 100644 --- a/src/org/anddev/andengine/examples/PhysicsMouseJointExample.java +++ b/src/org/anddev/andengine/examples/PhysicsMouseJointExample.java @@ -20,14 +20,13 @@ import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.extension.physics.box2d.util.constants.PhysicsConstants; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; import org.anddev.andengine.sensor.accelerometer.AccelerometerData; import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.hardware.SensorManager; import android.widget.Toast; @@ -93,14 +92,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - /* Textures. */ - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - /* TextureRegions. */ + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PhysicsRemoveExample.java b/src/org/anddev/andengine/examples/PhysicsRemoveExample.java index 02b3a17..4df66ee 100644 --- a/src/org/anddev/andengine/examples/PhysicsRemoveExample.java +++ b/src/org/anddev/andengine/examples/PhysicsRemoveExample.java @@ -18,7 +18,6 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -84,11 +83,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/PinchZoomExample.java b/src/org/anddev/andengine/examples/PinchZoomExample.java index 0381aae..d826371 100644 --- a/src/org/anddev/andengine/examples/PinchZoomExample.java +++ b/src/org/anddev/andengine/examples/PinchZoomExample.java @@ -22,7 +22,6 @@ import org.anddev.andengine.input.touch.detector.ScrollDetector; import org.anddev.andengine.input.touch.detector.ScrollDetector.IScrollDetectorListener; import org.anddev.andengine.input.touch.detector.SurfaceScrollDetector; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -92,10 +91,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mCardDeckTexture = new BitmapTextureAtlas(1024, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mCardDeckTexture = new BitmapTextureAtlas(1024, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mCardDeckTexture, this, "carddeck_tiled.png", 0, 0); + this.mCardDeckTexture.load(); this.mCardTotextureRegionMap = new HashMap(); @@ -104,8 +104,6 @@ public void onLoadResources() { final ITextureRegion cardTextureRegion = TextureRegionFactory.extractFromTexture(this.mCardDeckTexture, card.getTexturePositionX(), card.getTexturePositionY(), Card.CARD_WIDTH, Card.CARD_HEIGHT, true); this.mCardTotextureRegionMap.put(card, cardTextureRegion); } - - TextureManager.loadTexture(this.mCardDeckTexture); } @Override diff --git a/src/org/anddev/andengine/examples/RepeatingSpriteBackgroundExample.java b/src/org/anddev/andengine/examples/RepeatingSpriteBackgroundExample.java index e11d302..64ee195 100644 --- a/src/org/anddev/andengine/examples/RepeatingSpriteBackgroundExample.java +++ b/src/org/anddev/andengine/examples/RepeatingSpriteBackgroundExample.java @@ -14,7 +14,6 @@ import org.anddev.andengine.entity.scene.background.RepeatingSpriteBackground; import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -67,12 +66,12 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.DEFAULT); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.DEFAULT); this.mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "player.png", 0, 0, 3, 4); this.mGrassBackground = new RepeatingSpriteBackground(CAMERA_WIDTH, CAMERA_HEIGHT, new AssetBitmapTextureAtlasSource(this, "gfx/background_grass.png")); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/Rotation3DExample.java b/src/org/anddev/andengine/examples/Rotation3DExample.java index 1bd036f..37917dd 100644 --- a/src/org/anddev/andengine/examples/Rotation3DExample.java +++ b/src/org/anddev/andengine/examples/Rotation3DExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -62,11 +61,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override @@ -82,15 +81,6 @@ public Scene onLoadScene() { /* Create the face and add it to the scene. */ final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion) { - - @Override - protected void preDraw(final Camera pCamera) { - super.preDraw(pCamera); - - /* Disable culling so we can see the backside of this sprite. */ - GLState.disableCulling(); - } - @Override protected void applyRotation() { final float rotation = this.mRotation; @@ -105,14 +95,6 @@ protected void applyRotation() { GLState.translateModelViewGLMatrixf(-rotationCenterX, -rotationCenterY, 0); } } - - @Override - protected void postDraw(final Camera pCamera) { - /* Enable culling as 'normal' entities profit from culling. */ - GLState.enableCulling(); - - super.postDraw(pCamera); - } }; face.registerEntityModifier(new LoopEntityModifier(new RotationModifier(6, 0, 360))); scene.attachChild(face); diff --git a/src/org/anddev/andengine/examples/RunnablePoolUpdateHandlerExample.java b/src/org/anddev/andengine/examples/RunnablePoolUpdateHandlerExample.java index c523d05..556a28d 100644 --- a/src/org/anddev/andengine/examples/RunnablePoolUpdateHandlerExample.java +++ b/src/org/anddev/andengine/examples/RunnablePoolUpdateHandlerExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -77,11 +76,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/SVGTextureRegionExample.java b/src/org/anddev/andengine/examples/SVGTextureRegionExample.java index 6e79dce..56887de 100644 --- a/src/org/anddev/andengine/examples/SVGTextureRegionExample.java +++ b/src/org/anddev/andengine/examples/SVGTextureRegionExample.java @@ -13,7 +13,6 @@ import org.anddev.andengine.extension.svg.adt.ISVGColorMapper; import org.anddev.andengine.extension.svg.adt.SVGDirectColorMapper; import org.anddev.andengine.extension.svg.opengl.texture.atlas.bitmap.SVGBitmapTextureAtlasTextureRegionFactory; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BuildableBitmapTextureAtlas; @@ -23,7 +22,7 @@ import org.anddev.andengine.opengl.texture.region.BaseTextureRegion; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.graphics.Color; @@ -119,11 +118,10 @@ public Integer mapColor(final Integer pColor) { try { this.mBuildableBitmapTextureAtlas.build(new BlackPawnTextureBuilder(1)); + this.mBuildableBitmapTextureAtlas.load(); } catch (final TextureAtlasSourcePackingException e) { Debug.e(e); } - - TextureManager.loadTexture(this.mBuildableBitmapTextureAtlas); } @Override diff --git a/src/org/anddev/andengine/examples/SoundExample.java b/src/org/anddev/andengine/examples/SoundExample.java index 101bea0..3e2f996 100644 --- a/src/org/anddev/andengine/examples/SoundExample.java +++ b/src/org/anddev/andengine/examples/SoundExample.java @@ -16,12 +16,11 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.widget.Toast; @@ -70,9 +69,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mTankTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "tank.png", 0, 0); + this.mBitmapTextureAtlas.load(); SoundFactory.setAssetBasePath("mfx/"); try { @@ -80,8 +81,6 @@ public void onLoadResources() { } catch (final IOException e) { Debug.e(e); } - - TextureManager.loadTexture(this.mBitmapTextureAtlas); } @Override diff --git a/src/org/anddev/andengine/examples/SplitScreenExample.java b/src/org/anddev/andengine/examples/SplitScreenExample.java index 7a32303..71639eb 100644 --- a/src/org/anddev/andengine/examples/SplitScreenExample.java +++ b/src/org/anddev/andengine/examples/SplitScreenExample.java @@ -17,7 +17,6 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -86,10 +85,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/SpriteBatchExample.java b/src/org/anddev/andengine/examples/SpriteBatchExample.java index d9a24db..9cfb62d 100644 --- a/src/org/anddev/andengine/examples/SpriteBatchExample.java +++ b/src/org/anddev/andengine/examples/SpriteBatchExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.batch.DynamicSpriteBatch; import org.anddev.andengine.entity.sprite.batch.SpriteBatch; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -60,11 +59,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/SpriteExample.java b/src/org/anddev/andengine/examples/SpriteExample.java index 7e6bfbc..cbc03cd 100644 --- a/src/org/anddev/andengine/examples/SpriteExample.java +++ b/src/org/anddev/andengine/examples/SpriteExample.java @@ -9,7 +9,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -58,11 +57,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/SpriteRemoveExample.java b/src/org/anddev/andengine/examples/SpriteRemoveExample.java index fae824f..f954e7e 100644 --- a/src/org/anddev/andengine/examples/SpriteRemoveExample.java +++ b/src/org/anddev/andengine/examples/SpriteRemoveExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -64,11 +63,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/StrokeFontExample.java b/src/org/anddev/andengine/examples/StrokeFontExample.java index 5e6be39..d6fe69d 100644 --- a/src/org/anddev/andengine/examples/StrokeFontExample.java +++ b/src/org/anddev/andengine/examples/StrokeFontExample.java @@ -10,9 +10,8 @@ import org.anddev.andengine.entity.text.Text; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; import org.anddev.andengine.opengl.font.StrokeFont; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; @@ -42,10 +41,6 @@ public class StrokeFontExample extends BaseExample { private Camera mCamera; - private BitmapTextureAtlas mFontTexture; - private BitmapTextureAtlas mStrokeFontTexture; - private BitmapTextureAtlas mStrokeOnlyFontTexture; - private Font mFont; private StrokeFont mStrokeFont; private StrokeFont mStrokeOnlyFont; @@ -70,16 +65,13 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mStrokeFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mStrokeOnlyFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - - this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), FONT_SIZE, true, Color.BLACK); - this.mStrokeFont = new StrokeFont(this.mStrokeFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), FONT_SIZE, true, Color.BLACK, 2, Color.WHITE); - this.mStrokeOnlyFont = new StrokeFont(this.mStrokeOnlyFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), FONT_SIZE, true, Color.BLACK, 2, Color.WHITE, true); + final ITexture fontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture strokeFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture strokeOnlyFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - TextureManager.loadTextures(this.mFontTexture, this.mStrokeFontTexture, this.mStrokeOnlyFontTexture); - FontManager.loadFonts(this.mFont, this.mStrokeFont, this.mStrokeOnlyFont); + this.mFont = new Font(fontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), FONT_SIZE, true, Color.BLACK).load(); + this.mStrokeFont = new StrokeFont(strokeFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), FONT_SIZE, true, Color.BLACK, 2, Color.WHITE).load(); + this.mStrokeOnlyFont = new StrokeFont(strokeOnlyFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), FONT_SIZE, true, Color.BLACK, 2, Color.WHITE, true).load(); } @Override diff --git a/src/org/anddev/andengine/examples/SubMenuExample.java b/src/org/anddev/andengine/examples/SubMenuExample.java index 28d4968..05c2ba3 100644 --- a/src/org/anddev/andengine/examples/SubMenuExample.java +++ b/src/org/anddev/andengine/examples/SubMenuExample.java @@ -4,7 +4,6 @@ import org.anddev.andengine.entity.scene.menu.animator.SlideMenuAnimator; import org.anddev.andengine.entity.scene.menu.item.IMenuItem; import org.anddev.andengine.entity.scene.menu.item.SpriteMenuItem; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -51,13 +50,12 @@ public class SubMenuExample extends MenuExample { @Override public void onLoadResources() { super.onLoadResources(); - this.mSubMenuTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mSubMenuTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mMenuOkTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mSubMenuTexture, this, "menu_ok.png", 0, 0); this.mMenuBackTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mSubMenuTexture, this, "menu_back.png", 0, 50); - - TextureManager.loadTexture(this.mSubMenuTexture); + this.mSubMenuTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/TextExample.java b/src/org/anddev/andengine/examples/TextExample.java index d11620e..14f337a 100644 --- a/src/org/anddev/andengine/examples/TextExample.java +++ b/src/org/anddev/andengine/examples/TextExample.java @@ -1,103 +1,116 @@ -package org.anddev.andengine.examples; - -import org.anddev.andengine.engine.Engine; -import org.anddev.andengine.engine.camera.Camera; -import org.anddev.andengine.engine.options.EngineOptions; -import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation; -import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy; -import org.anddev.andengine.entity.scene.Scene; -import org.anddev.andengine.entity.scene.background.Background; -import org.anddev.andengine.entity.text.Text; -import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; -import org.anddev.andengine.opengl.texture.TextureOptions; -import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; -import org.anddev.andengine.util.HorizontalAlign; - -import android.graphics.Color; -import android.graphics.Typeface; - -/** - * (c) 2010 Nicolas Gramlich - * (c) 2011 Zynga - * - * @author Nicolas Gramlich - * @since 11:54:51 - 03.04.2010 - */ -public class TextExample extends BaseExample { - // =========================================================== - // Constants - // =========================================================== - - private static final int CAMERA_WIDTH = 720; - private static final int CAMERA_HEIGHT = 480; - - // =========================================================== - // Fields - // =========================================================== - - private Camera mCamera; - private BitmapTextureAtlas mFontTexture; - private Font mFont; - - // =========================================================== - // Constructors - // =========================================================== - - // =========================================================== - // Getter & Setter - // =========================================================== - - // =========================================================== - // Methods for/from SuperClass/Interfaces - // =========================================================== - - @Override - public Engine onLoadEngine() { - this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); - return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera)); - } - - @Override - public void onLoadResources() { - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - - this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.BLACK); - - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); - } - - @Override - public Scene onLoadScene() { - this.mEngine.registerUpdateHandler(new FPSLogger()); - - final Scene scene = new Scene(); - scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f)); - - final Text textCenter = new Text(100, 60, this.mFont, "Hello AndEngine!\nYou can even have multilined text!", HorizontalAlign.CENTER); - final Text textLeft = new Text(100, 200, this.mFont, "Also left aligned!\nLorem ipsum dolor sit amat...", HorizontalAlign.LEFT); - final Text textRight = new Text(100, 340, this.mFont, "And right aligned!\nLorem ipsum dolor sit amat...", HorizontalAlign.RIGHT); - - scene.attachChild(textCenter); - scene.attachChild(textLeft); - scene.attachChild(textRight); - - return scene; - } - - @Override - public void onLoadComplete() { - - } - - // =========================================================== - // Methods - // =========================================================== - - // =========================================================== - // Inner and Anonymous Classes - // =========================================================== -} +package org.anddev.andengine.examples; + +import org.anddev.andengine.engine.Engine; +import org.anddev.andengine.engine.camera.Camera; +import org.anddev.andengine.engine.options.EngineOptions; +import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation; +import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy; +import org.anddev.andengine.entity.primitive.Line; +import org.anddev.andengine.entity.scene.Scene; +import org.anddev.andengine.entity.scene.background.Background; +import org.anddev.andengine.entity.sprite.Sprite; +import org.anddev.andengine.entity.text.Text; +import org.anddev.andengine.entity.util.FPSLogger; +import org.anddev.andengine.opengl.font.BitmapFont; +import org.anddev.andengine.opengl.font.Font; +import org.anddev.andengine.opengl.texture.ITexture; +import org.anddev.andengine.opengl.texture.TextureOptions; +import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; +import org.anddev.andengine.opengl.texture.bitmap.BitmapTexture.BitmapTextureFormat; +import org.anddev.andengine.opengl.texture.region.TextureRegionFactory; +import org.anddev.andengine.util.HorizontalAlign; + +import android.graphics.Typeface; + +/** + * (c) 2010 Nicolas Gramlich + * (c) 2011 Zynga + * + * @author Nicolas Gramlich + * @since 11:54:51 - 03.04.2010 + */ +public class TextExample extends BaseExample { + // =========================================================== + // Constants + // =========================================================== + + private static final int CAMERA_WIDTH = 720; + private static final int CAMERA_HEIGHT = 480; + + // =========================================================== + // Fields + // =========================================================== + + private Camera mCamera; + private Font mFont; + private BitmapFont mBitmapFont; + + // =========================================================== + // Constructors + // =========================================================== + + // =========================================================== + // Getter & Setter + // =========================================================== + + // =========================================================== + // Methods for/from SuperClass/Interfaces + // =========================================================== + + @Override + public Engine onLoadEngine() { + this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); + return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera)); + } + + @Override + public void onLoadResources() { + final ITexture fontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFont = new Font(fontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32).load(); + + this.mBitmapFont = new BitmapFont(this, "font/BitmapFont.fnt", TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mBitmapFont.loadTextures(); + } + + @Override + public Scene onLoadScene() { + this.mEngine.registerUpdateHandler(new FPSLogger()); + + final Scene scene = new Scene(); +// scene.attachChild(new Sprite(0, 0, TextureRegionFactory.extractFromTexture(this.mFont.getTexture()))); + scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f)); + + final Text text = new Text(100, 100, this.mFont, "Hello Font!\nYou can even have multilined text!", HorizontalAlign.CENTER); + final Text bitmapText = new Text(100, 200, this.mBitmapFont, "Hello BitmapFont!\nYou can even have multilined text!", HorizontalAlign.CENTER); + scene.attachChild(new Line(100, 100, 500, 100)); + scene.attachChild(new Line(100, 100, 100, 500)); + scene.attachChild(new Line(100, 200, 500, 200)); + + scene.attachChild(text); + scene.attachChild(bitmapText); + +// final Text textCenter = new Text(100, 60, this.mFont, "Hello AndEngine!\nYou can even have multilined text!", HorizontalAlign.CENTER); +// final Text textLeft = new Text(100, 200, this.mFont, "Also left aligned!\nLorem ipsum dolor sit amat...", HorizontalAlign.LEFT); +// final Text textRight = new Text(100, 340, this.mFont, "And right aligned!\nLorem ipsum dolor sit amat...", HorizontalAlign.RIGHT); +// +// scene.attachChild(textCenter); +// scene.attachChild(textLeft); +// scene.attachChild(textRight); + + + return scene; + } + + @Override + public void onLoadComplete() { + + } + + // =========================================================== + // Methods + // =========================================================== + + // =========================================================== + // Inner and Anonymous Classes + // =========================================================== +} diff --git a/src/org/anddev/andengine/examples/TextMenuExample.java b/src/org/anddev/andengine/examples/TextMenuExample.java index 35d6ed8..3ff5422 100644 --- a/src/org/anddev/andengine/examples/TextMenuExample.java +++ b/src/org/anddev/andengine/examples/TextMenuExample.java @@ -17,8 +17,7 @@ import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.opengl.font.Font; import org.anddev.andengine.opengl.font.FontFactory; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -57,7 +56,6 @@ public class TextMenuExample extends BaseExample implements IOnMenuItemClickList private BitmapTextureAtlas mBitmapTextureAtlas; private ITextureRegion mFaceTextureRegion; - private BitmapTextureAtlas mFontTexture; private Font mFont; protected MenuScene mMenuScene; @@ -82,19 +80,16 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - /* Load Font/Textures. */ - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - FontFactory.setAssetBasePath("font/"); - this.mFont = FontFactory.createFromAsset(this.mFontTexture, this, "Plok.ttf", 48, true, android.graphics.Color.WHITE); - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); - /* Load Sprite-Textures. */ - this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture fontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFont = FontFactory.createFromAsset(fontTexture, this, "Plok.ttf", 48, true, android.graphics.Color.WHITE).load(); + BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + + this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 64, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box_menu.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/TextureOptionsExample.java b/src/org/anddev/andengine/examples/TextureOptionsExample.java index 648a196..cd9b933 100644 --- a/src/org/anddev/andengine/examples/TextureOptionsExample.java +++ b/src/org/anddev/andengine/examples/TextureOptionsExample.java @@ -9,7 +9,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -65,19 +64,21 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.DEFAULT); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); this.mBitmapTextureAtlasBilinear = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegionBilinear = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlasBilinear, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlasBilinear.load(); this.mBitmapTextureAtlasRepeating = new BitmapTextureAtlas(32, 32, TextureOptions.REPEATING_NEAREST_PREMULTIPLYALPHA); this.mFaceTextureRegionRepeating = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlasRepeating, this, "face_box.png", 0, 0); /* The following statement causes the BitmapTextureAtlas to be printed horizontally 10x on any Sprite that uses it. * So we will later increase the width of such a sprite by the same factor to avoid distortion. */ this.mFaceTextureRegionRepeating.setWidth(10 * this.mFaceTextureRegionRepeating.getWidth()); - - TextureManager.loadTextures(this.mBitmapTextureAtlas, this.mBitmapTextureAtlasBilinear, this.mBitmapTextureAtlasRepeating); + this.mBitmapTextureAtlasRepeating.load(); } @Override diff --git a/src/org/anddev/andengine/examples/TexturePackerExample.java b/src/org/anddev/andengine/examples/TexturePackerExample.java index f9e2eaf..b426ee4 100644 --- a/src/org/anddev/andengine/examples/TexturePackerExample.java +++ b/src/org/anddev/andengine/examples/TexturePackerExample.java @@ -8,17 +8,14 @@ import org.anddev.andengine.entity.scene.Scene; import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; -import org.anddev.andengine.entity.sprite.UncoloredSprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.examples.spritesheets.TexturePackerExampleSpritesheet; import org.anddev.andengine.extension.texturepacker.opengl.texture.util.texturepacker.TexturePack; import org.anddev.andengine.extension.texturepacker.opengl.texture.util.texturepacker.TexturePackLoader; import org.anddev.andengine.extension.texturepacker.opengl.texture.util.texturepacker.TexturePackTextureRegionLibrary; import org.anddev.andengine.extension.texturepacker.opengl.texture.util.texturepacker.exception.TexturePackParseException; -import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.region.TextureRegion; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; /** * (c) 2011 Zynga @@ -39,7 +36,6 @@ public class TexturePackerExample extends BaseExample { // =========================================================== private Camera mCamera; - private ITexture mSpritesheetTexture; private TexturePackTextureRegionLibrary mSpritesheetTexturePackTextureRegionLibrary; // =========================================================== @@ -64,9 +60,8 @@ public Engine onLoadEngine() { public void onLoadResources() { try { final TexturePack spritesheetTexturePack = new TexturePackLoader(this, "gfx/spritesheets/").loadFromAsset(this, "texturepackerexample.xml"); - this.mSpritesheetTexture = spritesheetTexturePack.getTexture(); + spritesheetTexturePack.loadTexture(); this.mSpritesheetTexturePackTextureRegionLibrary = spritesheetTexturePack.getTexturePackTextureRegionLibrary(); - TextureManager.loadTexture(this.mSpritesheetTexture); } catch (final TexturePackParseException e) { Debug.e(e); } @@ -79,7 +74,7 @@ public Scene onLoadScene() { final Scene scene = new Scene(); scene.setBackground(new Background(1, 1, 1)); - TextureRegion faceTextureRegion = this.mSpritesheetTexturePackTextureRegionLibrary.get(TexturePackerExampleSpritesheet.TEST_ID); + TextureRegion faceTextureRegion = this.mSpritesheetTexturePackTextureRegionLibrary.get(TexturePackerExampleSpritesheet.FACE_BOX_ID); /* Calculate the coordinates for the face, so its centered on the camera. */ final int centerX = (CAMERA_WIDTH - faceTextureRegion.getWidth()) / 2; final int centerY = (CAMERA_HEIGHT - faceTextureRegion.getHeight()) / 2; diff --git a/src/org/anddev/andengine/examples/TickerTextExample.java b/src/org/anddev/andengine/examples/TickerTextExample.java index b1a7ac9..fd4dfcb 100644 --- a/src/org/anddev/andengine/examples/TickerTextExample.java +++ b/src/org/anddev/andengine/examples/TickerTextExample.java @@ -16,13 +16,11 @@ import org.anddev.andengine.entity.text.TickerText; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.util.HorizontalAlign; -import android.graphics.Color; import android.graphics.Typeface; import android.opengl.GLES20; @@ -46,7 +44,7 @@ public class TickerTextExample extends BaseExample { // =========================================================== private Camera mCamera; - private BitmapTextureAtlas mFontTexture; + private Font mFont; // =========================================================== @@ -69,12 +67,9 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - - this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.BLACK); + final ITexture fontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); + this.mFont = new Font(fontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32).load(); } @Override @@ -86,13 +81,13 @@ public Scene onLoadScene() { final Text text = new TickerText(30, 60, this.mFont, "There are also ticker texts!\n\nYou'll see the answer to life & universe in...\n\n5 4 3 2 1...\n\n42\n\nIndeed very funny!", HorizontalAlign.CENTER, 10); text.registerEntityModifier( - new SequenceEntityModifier( - new ParallelEntityModifier( - new AlphaModifier(10, 0.0f, 1.0f), - new ScaleModifier(10, 0.5f, 1.0f) - ), - new RotationModifier(5, 0, 360) - ) + new SequenceEntityModifier( + new ParallelEntityModifier( + new AlphaModifier(10, 0.0f, 1.0f), + new ScaleModifier(10, 0.5f, 1.0f) + ), + new RotationModifier(5, 0, 360) + ) ); text.setBlendFunction(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA); scene.attachChild(text); diff --git a/src/org/anddev/andengine/examples/TouchDragExample.java b/src/org/anddev/andengine/examples/TouchDragExample.java index 5634bdd..f5e9e71 100644 --- a/src/org/anddev/andengine/examples/TouchDragExample.java +++ b/src/org/anddev/andengine/examples/TouchDragExample.java @@ -10,7 +10,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -62,11 +61,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/UnloadResourcesExample.java b/src/org/anddev/andengine/examples/UnloadResourcesExample.java index cc2e8f6..c27f7e0 100644 --- a/src/org/anddev/andengine/examples/UnloadResourcesExample.java +++ b/src/org/anddev/andengine/examples/UnloadResourcesExample.java @@ -10,7 +10,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -60,11 +59,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mClickToUnloadTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "click_to_unload.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mClickToUnloadTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "click_to_unload.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override @@ -81,7 +80,7 @@ public Scene onLoadScene() { public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { /* Completely remove all resources associated with this sprite. */ VertexBufferObjectManager.unloadBufferObject(this.getMesh().getVertexBufferObject()); - TextureManager.unloadTexture(UnloadResourcesExample.this.mBitmapTextureAtlas); + UnloadResourcesExample.this.mBitmapTextureAtlas.unload(); /* And remove the sprite from the Scene. */ final Sprite thisRef = this; diff --git a/src/org/anddev/andengine/examples/UpdateTextureExample.java b/src/org/anddev/andengine/examples/UpdateTextureExample.java index 8a4280c..5792c69 100644 --- a/src/org/anddev/andengine/examples/UpdateTextureExample.java +++ b/src/org/anddev/andengine/examples/UpdateTextureExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.AnimatedSprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -69,8 +68,7 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/ZoomExample.java b/src/org/anddev/andengine/examples/ZoomExample.java index 13e3a4b..34ce46c 100644 --- a/src/org/anddev/andengine/examples/ZoomExample.java +++ b/src/org/anddev/andengine/examples/ZoomExample.java @@ -11,7 +11,6 @@ import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.util.FPSLogger; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -63,11 +62,11 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); - this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/app/cityradar/CityRadarActivity.java b/src/org/anddev/andengine/examples/app/cityradar/CityRadarActivity.java index 2100c43..b631231 100644 --- a/src/org/anddev/andengine/examples/app/cityradar/CityRadarActivity.java +++ b/src/org/anddev/andengine/examples/app/cityradar/CityRadarActivity.java @@ -17,8 +17,6 @@ import org.anddev.andengine.entity.text.Text; import org.anddev.andengine.examples.adt.cityradar.City; import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -33,7 +31,7 @@ import org.anddev.andengine.sensor.orientation.IOrientationListener; import org.anddev.andengine.sensor.orientation.OrientationData; import org.anddev.andengine.ui.activity.BaseGameActivity; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import org.anddev.andengine.util.math.MathUtils; import org.anddev.andengine.util.modifier.ease.EaseLinear; @@ -68,7 +66,6 @@ public class CityRadarActivity extends BaseGameActivity implements IOrientationL private ITextureRegion mRadarPointTextureRegion; private ITextureRegion mRadarTextureRegion; - private BitmapTextureAtlas mFontTexture; private Font mFont; private Location mUserLocation; @@ -118,11 +115,7 @@ public org.anddev.andengine.engine.Engine onLoadEngine() { @Override public void onLoadResources() { /* Init font. */ - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mFont = new Font(this.mFontTexture, Typeface.DEFAULT, 12, true, Color.WHITE); - - FontManager.loadFont(this.mFont); - TextureManager.loadTexture(this.mFontTexture); + this.mFont = new Font(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA, Typeface.DEFAULT, 12, true, Color.WHITE).load(); /* Init TextureRegions. */ this.mBuildableBitmapTextureAtlas = new BuildableBitmapTextureAtlas(512, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); @@ -133,11 +126,10 @@ public void onLoadResources() { try { this.mBuildableBitmapTextureAtlas.build(new BlackPawnTextureBuilder(1)); + this.mBuildableBitmapTextureAtlas.load(); } catch (final TextureAtlasSourcePackingException e) { Debug.e(e); } - - TextureManager.loadTexture(this.mBuildableBitmapTextureAtlas); } @Override diff --git a/src/org/anddev/andengine/examples/benchmark/AnimationBenchmark.java b/src/org/anddev/andengine/examples/benchmark/AnimationBenchmark.java index 9f0a46e..8e970ad 100644 --- a/src/org/anddev/andengine/examples/benchmark/AnimationBenchmark.java +++ b/src/org/anddev/andengine/examples/benchmark/AnimationBenchmark.java @@ -14,7 +14,6 @@ import org.anddev.andengine.opengl.shader.PositionTextureCoordinatesShaderProgram; import org.anddev.andengine.opengl.shader.util.constants.ShaderProgramConstants; import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -100,8 +99,8 @@ public void onLoadResources() { this.mHelicopterTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "helicopter_tiled.png", 400, 0, 2, 2); this.mBananaTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "banana_tiled.png", 0, 180, 4, 2); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 132, 180, 2, 1); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/benchmark/BaseBenchmark.java b/src/org/anddev/andengine/examples/benchmark/BaseBenchmark.java index 374fda1..14d8700 100644 --- a/src/org/anddev/andengine/examples/benchmark/BaseBenchmark.java +++ b/src/org/anddev/andengine/examples/benchmark/BaseBenchmark.java @@ -11,10 +11,10 @@ import org.anddev.andengine.examples.R; import org.anddev.andengine.ui.activity.BaseGameActivity; import org.anddev.andengine.util.Callback; -import org.anddev.andengine.util.Debug; import org.anddev.andengine.util.StreamUtils; -import org.anddev.andengine.util.SystemUtils; -import org.anddev.andengine.util.SystemUtils.SystemUtilsException; +import org.anddev.andengine.util.debug.Debug; +import org.anddev.andengine.util.system.SystemUtils; +import org.anddev.andengine.util.system.SystemUtils.SystemUtilsException; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; diff --git a/src/org/anddev/andengine/examples/benchmark/EntityModifierBenchmark.java b/src/org/anddev/andengine/examples/benchmark/EntityModifierBenchmark.java index 62c7d5b..f091cbd 100644 --- a/src/org/anddev/andengine/examples/benchmark/EntityModifierBenchmark.java +++ b/src/org/anddev/andengine/examples/benchmark/EntityModifierBenchmark.java @@ -17,7 +17,6 @@ import org.anddev.andengine.entity.scene.background.Background; import org.anddev.andengine.entity.sprite.Sprite; import org.anddev.andengine.entity.sprite.batch.SpriteGroup; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -90,8 +89,7 @@ public void onLoadResources() { this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/benchmark/PhysicsBenchmark.java b/src/org/anddev/andengine/examples/benchmark/PhysicsBenchmark.java index da28f6b..bdd9be0 100644 --- a/src/org/anddev/andengine/examples/benchmark/PhysicsBenchmark.java +++ b/src/org/anddev/andengine/examples/benchmark/PhysicsBenchmark.java @@ -18,7 +18,6 @@ import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.extension.physics.box2d.util.constants.PhysicsConstants; import org.anddev.andengine.input.touch.TouchEvent; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -102,7 +101,8 @@ public void onLoadResources() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.mBoxFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_box_tiled.png", 0, 0, 2, 1); // 64x32 this.mCircleFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "face_circle_tiled.png", 0, 32, 2, 1); // 64x32 - TextureManager.loadTexture(this.mBitmapTextureAtlas); + + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/benchmark/SpriteBenchmark.java b/src/org/anddev/andengine/examples/benchmark/SpriteBenchmark.java index 2fdc44a..c191976 100644 --- a/src/org/anddev/andengine/examples/benchmark/SpriteBenchmark.java +++ b/src/org/anddev/andengine/examples/benchmark/SpriteBenchmark.java @@ -13,7 +13,6 @@ import org.anddev.andengine.opengl.shader.PositionTextureCoordinatesShaderProgram; import org.anddev.andengine.opengl.shader.util.constants.ShaderProgramConstants; import org.anddev.andengine.opengl.texture.ITexture; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -89,7 +88,7 @@ public void onLoadResources() { BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0); - TextureManager.loadTexture(this.mBitmapTextureAtlas); + this.mBitmapTextureAtlas.load(); } @Override diff --git a/src/org/anddev/andengine/examples/benchmark/TickerTextBenchmark.java b/src/org/anddev/andengine/examples/benchmark/TickerTextBenchmark.java index 71801c3..054477f 100644 --- a/src/org/anddev/andengine/examples/benchmark/TickerTextBenchmark.java +++ b/src/org/anddev/andengine/examples/benchmark/TickerTextBenchmark.java @@ -10,10 +10,7 @@ import org.anddev.andengine.entity.text.Text; import org.anddev.andengine.entity.text.TickerText; import org.anddev.andengine.opengl.font.Font; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; -import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.util.HorizontalAlign; import android.graphics.Color; @@ -41,7 +38,6 @@ public class TickerTextBenchmark extends BaseBenchmark { // =========================================================== private Camera mCamera; - private BitmapTextureAtlas mFontTexture; private Font mFont; // =========================================================== @@ -79,12 +75,8 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - - this.mFont = new Font(this.mFontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 22, true, Color.WHITE); - - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); + Typeface typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD); + this.mFont = new Font(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA, typeface, 22, true, Color.WHITE).load(); } @Override diff --git a/src/org/anddev/andengine/examples/game/pong/PongGameActivity.java b/src/org/anddev/andengine/examples/game/pong/PongGameActivity.java index c2fea6f..350a3ab 100644 --- a/src/org/anddev/andengine/examples/game/pong/PongGameActivity.java +++ b/src/org/anddev/andengine/examples/game/pong/PongGameActivity.java @@ -41,12 +41,11 @@ import org.anddev.andengine.input.touch.TouchEvent; import org.anddev.andengine.opengl.font.Font; import org.anddev.andengine.opengl.font.FontFactory; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.ui.activity.BaseGameActivity; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.app.AlertDialog; import android.app.Dialog; @@ -102,7 +101,6 @@ public class PongGameActivity extends BaseGameActivity implements PongConstants, private final SparseArray mPaddleMap = new SparseArray(); private final SparseArray mScoreChangeableTextMap = new SparseArray(); - private BitmapTextureAtlas mScoreFontTexture; private Font mScoreFont; private float mPaddleCenterY; @@ -123,13 +121,10 @@ public Engine onLoadEngine() { @Override public void onLoadResources() { - this.mScoreFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + final ITexture scoreFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA); FontFactory.setAssetBasePath("font/"); - this.mScoreFont = FontFactory.createFromAsset(this.mScoreFontTexture, this, "LCD.ttf", 32, true, Color.WHITE); - - TextureManager.loadTexture(this.mScoreFontTexture); - FontManager.loadFont(this.mScoreFont); + this.mScoreFont = FontFactory.createFromAsset(scoreFontTexture, this, "LCD.ttf", 32, true, Color.WHITE).load(); } @Override diff --git a/src/org/anddev/andengine/examples/game/pong/PongServer.java b/src/org/anddev/andengine/examples/game/pong/PongServer.java index 178b414..e41889d 100644 --- a/src/org/anddev/andengine/examples/game/pong/PongServer.java +++ b/src/org/anddev/andengine/examples/game/pong/PongServer.java @@ -38,7 +38,7 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; import org.anddev.andengine.extension.physics.box2d.util.constants.PhysicsConstants; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import org.anddev.andengine.util.math.MathUtils; import android.util.SparseArray; diff --git a/src/org/anddev/andengine/examples/game/racer/RacerGameActivity.java b/src/org/anddev/andengine/examples/game/racer/RacerGameActivity.java index 6539097..e19b14d 100644 --- a/src/org/anddev/andengine/examples/game/racer/RacerGameActivity.java +++ b/src/org/anddev/andengine/examples/game/racer/RacerGameActivity.java @@ -19,7 +19,6 @@ import org.anddev.andengine.extension.physics.box2d.PhysicsFactory; import org.anddev.andengine.extension.physics.box2d.PhysicsWorld; import org.anddev.andengine.extension.physics.box2d.util.Vector2Pool; -import org.anddev.andengine.opengl.texture.TextureManager; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; @@ -106,19 +105,21 @@ public void onLoadResources() { this.mVehiclesTexture = new BitmapTextureAtlas(128, 16, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mVehiclesTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mVehiclesTexture, this, "vehicles.png", 0, 0, 6, 1); + this.mVehiclesTexture.load(); this.mRacetrackTexture = new BitmapTextureAtlas(128, 256, TextureOptions.REPEATING_BILINEAR_PREMULTIPLYALPHA); this.mRacetrackStraightTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mRacetrackTexture, this, "racetrack_straight.png", 0, 0); this.mRacetrackCurveTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mRacetrackTexture, this, "racetrack_curve.png", 0, 128); + this.mRacetrackTexture.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); + this.mOnScreenControlTexture.load(); this.mBoxTexture = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mBoxTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBoxTexture, this, "box.png", 0, 0); - - TextureManager.loadTextures(this.mVehiclesTexture, this.mRacetrackTexture, this.mOnScreenControlTexture, this.mBoxTexture); + this.mBoxTexture.load(); } @Override diff --git a/src/org/anddev/andengine/examples/game/snake/SnakeGameActivity.java b/src/org/anddev/andengine/examples/game/snake/SnakeGameActivity.java index 004a10a..85d52a1 100644 --- a/src/org/anddev/andengine/examples/game/snake/SnakeGameActivity.java +++ b/src/org/anddev/andengine/examples/game/snake/SnakeGameActivity.java @@ -30,16 +30,15 @@ import org.anddev.andengine.examples.game.snake.util.constants.SnakeConstants; import org.anddev.andengine.opengl.font.Font; import org.anddev.andengine.opengl.font.FontFactory; -import org.anddev.andengine.opengl.font.FontManager; -import org.anddev.andengine.opengl.texture.TextureManager; +import org.anddev.andengine.opengl.texture.ITexture; import org.anddev.andengine.opengl.texture.TextureOptions; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.anddev.andengine.opengl.texture.region.ITextureRegion; import org.anddev.andengine.opengl.texture.region.TiledTextureRegion; import org.anddev.andengine.ui.activity.BaseGameActivity; -import org.anddev.andengine.util.Debug; import org.anddev.andengine.util.HorizontalAlign; +import org.anddev.andengine.util.debug.Debug; import org.anddev.andengine.util.math.MathUtils; import android.graphics.Color; @@ -75,7 +74,6 @@ public class SnakeGameActivity extends BaseGameActivity implements SnakeConstant private DigitalOnScreenControl mDigitalOnScreenControl; - private BitmapTextureAtlas mFontTexture; private Font mFont; private BitmapTextureAtlas mBitmapTextureAtlas; @@ -125,11 +123,8 @@ public Engine onLoadEngine() { public void onLoadResources() { /* Load the font we are going to use. */ FontFactory.setAssetBasePath("font/"); - this.mFontTexture = new BitmapTextureAtlas(512, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA); - this.mFont = FontFactory.createFromAsset(this.mFontTexture, this, "Plok.ttf", 32, true, Color.WHITE); - - TextureManager.loadTexture(this.mFontTexture); - FontManager.loadFont(this.mFont); + final ITexture fontTexture = new BitmapTextureAtlas(512, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA); + this.mFont = FontFactory.createFromAsset(fontTexture, this, "Plok.ttf", 32, true, Color.WHITE).load(); /* Load all the textures this game needs. */ this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); @@ -137,15 +132,16 @@ public void onLoadResources() { this.mHeadTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "snake_head.png", 0, 0, 3, 1); this.mTailPartTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "snake_tailpart.png", 96, 0); this.mFrogTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlas, this, "frog.png", 0, 64, 3, 1); + this.mBitmapTextureAtlas.load(); this.mBackgroundTexture = new BitmapTextureAtlas(1024, 512, TextureOptions.DEFAULT); this.mBackgroundTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBackgroundTexture, this, "snake_background.png", 0, 0); + this.mBackgroundTexture.load(); this.mOnScreenControlTexture = new BitmapTextureAtlas(256, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA); this.mOnScreenControlBaseTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_base.png", 0, 0); this.mOnScreenControlKnobTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mOnScreenControlTexture, this, "onscreen_control_knob.png", 128, 0); - - TextureManager.loadTextures(this.mBackgroundTexture, this.mBitmapTextureAtlas, this.mOnScreenControlTexture); + this.mOnScreenControlTexture.load(); /* Load all the sounds this game needs. */ try { diff --git a/src/org/anddev/andengine/examples/launcher/ExampleLauncher.java b/src/org/anddev/andengine/examples/launcher/ExampleLauncher.java index 2ff39e8..f77aaa9 100644 --- a/src/org/anddev/andengine/examples/launcher/ExampleLauncher.java +++ b/src/org/anddev/andengine/examples/launcher/ExampleLauncher.java @@ -3,7 +3,7 @@ import java.util.Arrays; import org.anddev.andengine.examples.R; -import org.anddev.andengine.util.Debug; +import org.anddev.andengine.util.debug.Debug; import android.app.AlertDialog; import android.app.Dialog;