Browse Source

Further Android fixes.

Lasse Öörni 13 years ago
parent
commit
0debc43fed

+ 2 - 1
Android/AndroidManifest.xml

@@ -3,6 +3,7 @@
       package="org.libsdl.app"
       package="org.libsdl.app"
       android:versionCode="1"
       android:versionCode="1"
       android:versionName="1.0">
       android:versionName="1.0">
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <application android:label="@string/app_name" android:icon="@drawable/icon">
     <application android:label="@string/app_name" android:icon="@drawable/icon">
         <activity android:name="SDLActivity"
         <activity android:name="SDLActivity"
                   android:label="@string/app_name">
                   android:label="@string/app_name">
@@ -12,4 +13,4 @@
             </intent-filter>
             </intent-filter>
         </activity>
         </activity>
     </application>
     </application>
-</manifest> 
+</manifest>

+ 1 - 0
Engine/Graphics/AnimatedModel.cpp

@@ -913,6 +913,7 @@ void AnimatedModel::CloneGeometries()
         {
         {
             SharedPtr<VertexBuffer> clone(new VertexBuffer(context_));
             SharedPtr<VertexBuffer> clone(new VertexBuffer(context_));
             clone->SetSize(original->GetVertexCount(), original->GetElementMask(), true);
             clone->SetSize(original->GetVertexCount(), original->GetElementMask(), true);
+            /// \todo Will not work on OpenGL ES
             void* originalData = original->Lock(0, original->GetVertexCount(), LOCK_READONLY);
             void* originalData = original->Lock(0, original->GetVertexCount(), LOCK_READONLY);
             if (originalData)
             if (originalData)
             {
             {

+ 2 - 2
Engine/Graphics/Geometry.cpp

@@ -97,7 +97,7 @@ void Geometry::SetIndexBuffer(IndexBuffer* buffer)
     indexBuffer_ = buffer;
     indexBuffer_ = buffer;
 }
 }
 
 
-bool Geometry::SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned indexCount, bool GetUsedVertexRange)
+bool Geometry::SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned indexCount, bool getUsedVertexRange)
 {
 {
     if (!indexBuffer_)
     if (!indexBuffer_)
     {
     {
@@ -118,7 +118,7 @@ bool Geometry::SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned in
     vertexStart_ = 0;
     vertexStart_ = 0;
     vertexCount_ = vertexBuffers_[0]->GetVertexCount();
     vertexCount_ = vertexBuffers_[0]->GetVertexCount();
     
     
-    if (GetUsedVertexRange)
+    if (getUsedVertexRange)
         indexBuffer_->GetUsedVertexRange(indexStart_, indexCount_, vertexStart_, vertexCount_);
         indexBuffer_->GetUsedVertexRange(indexStart_, indexCount_, vertexStart_, vertexCount_);
     
     
     return true;
     return true;

+ 1 - 1
Engine/Graphics/Geometry.h

@@ -50,7 +50,7 @@ public:
     /// %Set the index buffer.
     /// %Set the index buffer.
     void SetIndexBuffer(IndexBuffer* buffer);
     void SetIndexBuffer(IndexBuffer* buffer);
     /// %Set the draw range.
     /// %Set the draw range.
-    bool SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned indexCount, bool GetUsedVertexRange = true);
+    bool SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned indexCount, bool getUsedVertexRange = true);
     /// %Set the draw range.
     /// %Set the draw range.
     bool SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned indexCount, unsigned vertexStart, unsigned vertexCount);
     bool SetDrawRange(PrimitiveType type, unsigned indexStart, unsigned indexCount, unsigned vertexStart, unsigned vertexCount);
     /// %Set the LOD distance.
     /// %Set the LOD distance.

+ 2 - 0
Engine/Graphics/Model.cpp

@@ -299,6 +299,7 @@ bool Model::Save(Serializer& dest)
         dest.WriteUInt(buffer->GetElementMask());
         dest.WriteUInt(buffer->GetElementMask());
         dest.WriteUInt(buffer->GetMorphRangeStart());
         dest.WriteUInt(buffer->GetMorphRangeStart());
         dest.WriteUInt(buffer->GetMorphRangeCount());
         dest.WriteUInt(buffer->GetMorphRangeCount());
+        /// \todo Will not work on OpenGL ES
         void* data = buffer->Lock(0, buffer->GetVertexCount(), LOCK_READONLY);
         void* data = buffer->Lock(0, buffer->GetVertexCount(), LOCK_READONLY);
         if (!data)
         if (!data)
             return false;
             return false;
@@ -312,6 +313,7 @@ bool Model::Save(Serializer& dest)
         IndexBuffer* buffer = indexBuffers[i];
         IndexBuffer* buffer = indexBuffers[i];
         dest.WriteUInt(buffer->GetIndexCount());
         dest.WriteUInt(buffer->GetIndexCount());
         dest.WriteUInt(buffer->GetIndexSize());
         dest.WriteUInt(buffer->GetIndexSize());
+        /// \todo Will not work on OpenGL ES
         void* data = buffer->Lock(0, buffer->GetIndexCount(), LOCK_READONLY);
         void* data = buffer->Lock(0, buffer->GetIndexCount(), LOCK_READONLY);
         if (!data)
         if (!data)
             return false;
             return false;

+ 4 - 0
Engine/Graphics/OpenGL/OGLIndexBuffer.cpp

@@ -258,6 +258,10 @@ void IndexBuffer::ClearDataLost()
 
 
 bool IndexBuffer::GetUsedVertexRange(unsigned start, unsigned count, unsigned& minVertex, unsigned& vertexCount)
 bool IndexBuffer::GetUsedVertexRange(unsigned start, unsigned count, unsigned& minVertex, unsigned& vertexCount)
 {
 {
+    #ifdef GL_ES_VERSION_2_0
+    return false;
+    #endif
+    
     void* data = Lock(start, count, LOCK_READONLY);
     void* data = Lock(start, count, LOCK_READONLY);
     if (!data)
     if (!data)
         return false;
         return false;