Просмотр исходного кода

Made primitives default to textured material by default, scissor box fixes in retina mode

Ivan Safrin 10 лет назад
Родитель
Сommit
fdf227ab69

BIN
assets/default/default.pak


+ 4 - 0
assets/default/default/default.mat

@@ -51,6 +51,10 @@
 			<shader name="Unlit">
 			</shader>
 		</material>
+		<material name="UnlitAdditive" blendingMode="2">
+			<shader name="Unlit">
+			</shader>
+		</material>		
 		<material name="UnlitPointUntextured">
 			<shader name="UnlitPointUntextured">
 			</shader>

+ 4 - 4
build/osx/PolycodeStudio/PolycodeStudio.xcodeproj/project.pbxproj

@@ -7,7 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		6DE288291BE96D7B00F7B42C /* PolycodeView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6DE288281BE96D7B00F7B42C /* PolycodeView.mm */; };
+		6D6FD3E31BF122A7005AA8E9 /* PolycodeView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6D6FD3E21BF122A7005AA8E9 /* PolycodeView.mm */; };
 		8A22D92B1BCC67DE009EF0A6 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A22D92A1BCC67DE009EF0A6 /* OpenGL.framework */; };
 		8A22D92D1BCC67E6009EF0A6 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A22D92C1BCC67E6009EF0A6 /* AudioUnit.framework */; };
 		8A22D92F1BCC6809009EF0A6 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A22D92E1BCC6809009EF0A6 /* CoreAudio.framework */; };
@@ -65,8 +65,8 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
+		6D6FD3E21BF122A7005AA8E9 /* PolycodeView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PolycodeView.mm; path = ../../../../src/view/osx/PolycodeView.mm; sourceTree = "<group>"; };
 		6DE288271BE96D7100F7B42C /* PolycodeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolycodeView.h; path = ../../../../include/polycode/view/osx/PolycodeView.h; sourceTree = "<group>"; };
-		6DE288281BE96D7B00F7B42C /* PolycodeView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PolycodeView.mm; path = ../../../../src/view/osx/PolycodeView.mm; sourceTree = "<group>"; };
 		8A22D92A1BCC67DE009EF0A6 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
 		8A22D92C1BCC67E6009EF0A6 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
 		8A22D92E1BCC6809009EF0A6 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
@@ -213,8 +213,8 @@
 			isa = PBXGroup;
 			children = (
 				6DE288271BE96D7100F7B42C /* PolycodeView.h */,
-				6DE288281BE96D7B00F7B42C /* PolycodeView.mm */,
 				8A36D3281B8E7096009897D0 /* default.pak */,
+				6D6FD3E21BF122A7005AA8E9 /* PolycodeView.mm */,
 				8A36D20E1B8E5751009897D0 /* AppDelegate.h */,
 				8A36D20F1B8E5751009897D0 /* AppDelegate.m */,
 				8A36D2131B8E5751009897D0 /* Images.xcassets */,
@@ -433,7 +433,7 @@
 				8A36D2591B8E5BA9009897D0 /* NewFileWindow.cpp in Sources */,
 				8A36D25C1B8E5BA9009897D0 /* PolycodeConsole.cpp in Sources */,
 				8A36D2711B8E5BA9009897D0 /* TextureBrowser.cpp in Sources */,
-				6DE288291BE96D7B00F7B42C /* PolycodeView.mm in Sources */,
+				6D6FD3E31BF122A7005AA8E9 /* PolycodeView.mm in Sources */,
 				8A36D2741B8E5BA9009897D0 /* TransformGizmo.cpp in Sources */,
 				8A36D2721B8E5BA9009897D0 /* ToolWindows.cpp in Sources */,
 				8A36D2541B8E5BA9009897D0 /* EntityEditorPropertyView.cpp in Sources */,

+ 4 - 4
build/osx/TemplateApp/TemplateApp.xcodeproj/project.pbxproj

@@ -7,6 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		6D6FD3E11BF122A2005AA8E9 /* PolycodeView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6D6FD3E01BF122A2005AA8E9 /* PolycodeView.mm */; };
 		6DD2D0B61BEEDC150026D85C /* libportaudio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DD2D0B51BEEDC150026D85C /* libportaudio.a */; };
 		6DD2D0B81BEEDCC90026D85C /* white.png in Resources */ = {isa = PBXBuildFile; fileRef = 6DD2D0B71BEEDCC80026D85C /* white.png */; };
 		8A825F271B82A2680039E823 /* libportaudio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A825F261B82A2680039E823 /* libportaudio.a */; };
@@ -28,12 +29,12 @@
 		8A8653641B72949F009F94DD /* libz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A86535B1B72949F009F94DD /* libz.a */; };
 		8A8653681B7294B7009F94DD /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A8653671B7294B7009F94DD /* OpenGL.framework */; };
 		8A86536B1B729559009F94DD /* PolycodeTemplateApp.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8A86536A1B729559009F94DD /* PolycodeTemplateApp.mm */; };
-		8A86536D1B729D77009F94DD /* PolycodeView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8A86536C1B729D77009F94DD /* PolycodeView.mm */; };
 		8A8653701B72C431009F94DD /* default.pak in Resources */ = {isa = PBXBuildFile; fileRef = 8A86536F1B72C431009F94DD /* default.pak */; };
 		8A8653961B752DBE009F94DD /* main_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 8A8653951B752DBE009F94DD /* main_icon.png */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
+		6D6FD3E01BF122A2005AA8E9 /* PolycodeView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PolycodeView.mm; path = ../../../../src/view/osx/PolycodeView.mm; sourceTree = "<group>"; };
 		6DD2D0B51BEEDC150026D85C /* libportaudio.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libportaudio.a; path = ../../../../lib/osx/libportaudio.a; sourceTree = "<group>"; };
 		6DD2D0B71BEEDCC80026D85C /* white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = white.png; path = ../../../../../THU/HELLMOUTH/App/Resources/Resources/textures/white.png; sourceTree = "<group>"; };
 		8A825F261B82A2680039E823 /* libportaudio.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libportaudio.a; path = ../../../../lib/osx/libportaudio.a; sourceTree = "<group>"; };
@@ -59,7 +60,6 @@
 		8A8653671B7294B7009F94DD /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
 		8A8653691B729559009F94DD /* PolycodeTemplateApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PolycodeTemplateApp.h; sourceTree = "<group>"; };
 		8A86536A1B729559009F94DD /* PolycodeTemplateApp.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PolycodeTemplateApp.mm; sourceTree = "<group>"; };
-		8A86536C1B729D77009F94DD /* PolycodeView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PolycodeView.mm; path = ../../../../src/view/osx/PolycodeView.mm; sourceTree = "<group>"; };
 		8A86536E1B72C301009F94DD /* PolycodeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolycodeView.h; path = ../../../../include/polycode/view/osx/PolycodeView.h; sourceTree = "<group>"; };
 		8A86536F1B72C431009F94DD /* default.pak */ = {isa = PBXFileReference; lastKnownFileType = file; name = default.pak; path = ../../../../assets/default/default.pak; sourceTree = "<group>"; };
 		8A8653951B752DBE009F94DD /* main_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = main_icon.png; path = ../../../../assets/icons/main_icon.png; sourceTree = "<group>"; };
@@ -118,8 +118,8 @@
 				8A86536A1B729559009F94DD /* PolycodeTemplateApp.mm */,
 				8A8653351B72931C009F94DD /* AppDelegate.h */,
 				8A8653361B72931C009F94DD /* AppDelegate.m */,
+				6D6FD3E01BF122A2005AA8E9 /* PolycodeView.mm */,
 				8A86536E1B72C301009F94DD /* PolycodeView.h */,
-				8A86536C1B729D77009F94DD /* PolycodeView.mm */,
 				8A86536F1B72C431009F94DD /* default.pak */,
 				8A86533A1B72931C009F94DD /* Images.xcassets */,
 				6DD2D0B71BEEDCC80026D85C /* white.png */,
@@ -223,7 +223,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				8A8653391B72931C009F94DD /* main.m in Sources */,
-				8A86536D1B729D77009F94DD /* PolycodeView.mm in Sources */,
+				6D6FD3E11BF122A2005AA8E9 /* PolycodeView.mm in Sources */,
 				8A86536B1B729559009F94DD /* PolycodeTemplateApp.mm in Sources */,
 				8A8653371B72931C009F94DD /* AppDelegate.m in Sources */,
 			);

+ 9 - 18
build/osx/TemplateApp/TemplateApp/PolycodeTemplateApp.mm

@@ -14,27 +14,18 @@ PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
     
 	// Write your code here!
     
-    Scene *scene = new Scene(Scene::SCENE_3D);
+    Scene *scene = new Scene(Scene::SCENE_2D);
     scene->useClearColor = true;
+   
     
-    scene->getDefaultCamera()->setPosition(5.0, 5.0, 5.0);
-    scene->getDefaultCamera()->lookAt(Vector3());
-
-    SceneLabel *what = new SceneLabel("Huh?", 12, "mono", Label::ANTIALIAS_FULL, 1.0);
-    scene->addChild(what);
-    what->setPosition(0.0, 2.0, 0.0);
-    
-    ScenePrimitive *test = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 1.0, 1.0, 1.0);
-    test->setMaterialByName("DefaultTextured");
-    //test->getShaderPass(0).shaderBinding->loadTextureForParam("diffuse", "white.png");
-    //test->getShaderPass(0).shaderBinding->addParam(ProgramParam::PARAM_COLOR, "diffuse_color")->setColor(Color(1.0, 1.0, 1.0, 1.0));
+    ScenePrimitive *test = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 10.0, 10.0);
+    test->setMaterialByName("UnlitUntextured");
+    test->color = Color(1.0, 0.0, 0.0, 1.0);
+    test->enableScissor = true;
+    test->scissorBox.setRect(100, 50, 100, 30);
     scene->addChild(test);
-
-    SceneLight *light = new SceneLight(SceneLight::POINT_LIGHT, scene, 500.0);
-    scene->addLight(light);
-    scene->addChild(light);
-    light->setPosition(-10.0, 10.0, 10.0);
-
+    
+    
     Services()->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN);
 }
 

+ 1 - 1
lib

@@ -1 +1 @@
-Subproject commit a83ac0cf15083f86d5bc5770bcb3ab6cea02d6ef
+Subproject commit 1f45a39574ddda0b22c951c86b01612efda30a43

+ 1 - 1
src/core/PolyRenderer.cpp

@@ -149,7 +149,7 @@ void RenderThread::processDrawBuffer(GPUDrawBuffer *buffer) {
             scissorBox.x *= buffer->backingResolutionScale.x;
             scissorBox.w *= buffer->backingResolutionScale.x;
             scissorBox.h *= buffer->backingResolutionScale.y;
-            scissorBox.y = ((buffer->viewport.h*buffer->backingResolutionScale.y)-(scissorBox.y*buffer->backingResolutionScale.y))-scissorBox.h;
+            scissorBox.y = ((buffer->viewport.h-(scissorBox.y*buffer->backingResolutionScale.y)))-scissorBox.h;
             
             graphicsInterface->setScissorBox(scissorBox);
         } else {

+ 2 - 4
src/core/PolySceneEntityInstance.cpp

@@ -212,10 +212,8 @@ void SceneEntityInstance::applySceneMesh(ObjectEntry *entry, SceneMesh *sceneMes
                                             }
                                              */
                                         } else {
-                                            // RENDERER_TODO
-                                            /*
-                                            sceneMesh->getLocalShaderOptions()->setTextureForParam(nameEntry->stringVal, CoreServices::getInstance()->getMaterialManager()->createTextureFromFile(textureEntry->stringVal));
-                                             */
+                                            
+                                            sceneMesh->getShaderPass(0).shaderBinding->loadTextureForParam(nameEntry->stringVal, textureEntry->stringVal);
                                         }
                                     }
                                 }

+ 3 - 3
src/core/PolySceneMesh.cpp

@@ -55,7 +55,7 @@ SceneMesh::SceneMesh(const String& fileName) : Entity(), material(NULL), skeleto
     backfaceCulled = true;
 	alphaTest = false;
     sendBoneMatricesToMaterial = false;
-    setMaterialByName("UnlitUntextured");
+    setMaterialByName("Unlit");
 }
 
 SceneMesh::SceneMesh(Mesh *mesh) : Entity(), material(NULL), skeleton(NULL), skeletalVertexPositions(3, RenderDataArray::VERTEX_DATA_ARRAY), skeletalVertexNormals(3, RenderDataArray::NORMAL_DATA_ARRAY) {
@@ -71,7 +71,7 @@ SceneMesh::SceneMesh(Mesh *mesh) : Entity(), material(NULL), skeleton(NULL), ske
     backfaceCulled = true;
 	alphaTest = false;
     sendBoneMatricesToMaterial = false;
-    setMaterialByName("UnlitUntextured");
+    setMaterialByName("Unlit");
 }
 
 SceneMesh::SceneMesh(int meshType) : material(NULL), skeleton(NULL), skeletalVertexPositions(3, RenderDataArray::VERTEX_DATA_ARRAY), skeletalVertexNormals(3, RenderDataArray::NORMAL_DATA_ARRAY) {
@@ -86,7 +86,7 @@ SceneMesh::SceneMesh(int meshType) : material(NULL), skeleton(NULL), skeletalVer
     backfaceCulled = true;
 	alphaTest = false;
     sendBoneMatricesToMaterial = false;
-    setMaterialByName("UnlitUntextured");    
+    setMaterialByName("Unlit");
 }
 
 void SceneMesh::setMesh(Mesh *mesh) {