History

merge from upstream

Seth Alves committed 11 years ago

Commit fecdc082 parents cdc2652 cf88bce73 files · +370 −457Browse files

Showing the changes to libraries/render-utils/src/Model.cpp (1 of 73 files). Show all

Unified · Split

libraries/render-utils/src/Model.cpp+27−13
@@ -114,12 +114,10 @@ void Model::RenderPipelineLib::addRenderPipeline(Model::RenderKey key, · 113 unmodified lines
114 gpu::ShaderPointer program = gpu::ShaderPointer(gpu::Shader::createProgram(vertexShader, pixelShader));114 gpu::ShaderPointer program = gpu::ShaderPointer(gpu::Shader::createProgram(vertexShader, pixelShader));
115 gpu::Shader::makeProgram(*program, slotBindings);115 gpu::Shader::makeProgram(*program, slotBindings);
116 116
117 117 auto locations = std::make_shared<Locations>();
118 auto locations = std::shared_ptr<Locations>(new Locations());
119 initLocations(program, *locations);118 initLocations(program, *locations);
120 119
121 120 auto state = std::make_shared<gpu::State>();
122 gpu::StatePointer state = gpu::StatePointer(new gpu::State());
123 121
124 // Backface on shadow122 // Backface on shadow
125 if (key.isShadow()) {123 if (key.isShadow()) {
@@ -147,8 +145,13 @@ void Model::RenderPipelineLib::addRenderPipeline(Model::RenderKey key, · 21 unmodified lines
147 if (!key.isWireFrame()) {145 if (!key.isWireFrame()) {
148 146
149 RenderKey wireframeKey(key.getRaw() | RenderKey::IS_WIREFRAME);147 RenderKey wireframeKey(key.getRaw() | RenderKey::IS_WIREFRAME);
148<<<<<<< HEAD
150 gpu::StatePointer wireframeState = gpu::StatePointer(new gpu::State(state->getValues()));149 gpu::StatePointer wireframeState = gpu::StatePointer(new gpu::State(state->getValues()));
151 150
151=======
152 auto wireframeState = std::make_shared<gpu::State>(state->getValues());
153
154>>>>>>> cf88bce0820df76a55473370db0fcb8c5fe6763d
152 wireframeState->setFillMode(gpu::State::FILL_LINE);155 wireframeState->setFillMode(gpu::State::FILL_LINE);
153 156
154 // create a new RenderPipeline with the same shader side and the mirrorState157 // create a new RenderPipeline with the same shader side and the mirrorState
@@ -160,7 +163,7 @@ void Model::RenderPipelineLib::addRenderPipeline(Model::RenderKey key, · 5 unmodified lines
160 if (!key.isShadow()) {163 if (!key.isShadow()) {
161 164
162 RenderKey mirrorKey(key.getRaw() | RenderKey::IS_MIRROR);165 RenderKey mirrorKey(key.getRaw() | RenderKey::IS_MIRROR);
163 gpu::StatePointer mirrorState = gpu::StatePointer(new gpu::State(state->getValues()));166 auto mirrorState = std::make_shared<gpu::State>(state->getValues());
164 167
165 mirrorState->setFrontFaceClockwise(true);168 mirrorState->setFrontFaceClockwise(true);
166 169
@@ -170,8 +173,13 @@ void Model::RenderPipelineLib::addRenderPipeline(Model::RenderKey key, · 3 unmodified lines
170 173
171 if (!key.isWireFrame()) {174 if (!key.isWireFrame()) {
172 RenderKey wireframeKey(key.getRaw() | RenderKey::IS_MIRROR | RenderKey::IS_WIREFRAME);175 RenderKey wireframeKey(key.getRaw() | RenderKey::IS_MIRROR | RenderKey::IS_WIREFRAME);
176<<<<<<< HEAD
173 gpu::StatePointer wireframeState = gpu::StatePointer(new gpu::State(state->getValues()));;177 gpu::StatePointer wireframeState = gpu::StatePointer(new gpu::State(state->getValues()));;
174 178
179=======
180 auto wireframeState = std::make_shared<gpu::State>(state->getValues());
181
182>>>>>>> cf88bce0820df76a55473370db0fcb8c5fe6763d
175 wireframeState->setFillMode(gpu::State::FILL_LINE);183 wireframeState->setFillMode(gpu::State::FILL_LINE);
176 184
177 // create a new RenderPipeline with the same shader side and the mirrorState185 // create a new RenderPipeline with the same shader side and the mirrorState
@@ -491,9 +499,15 @@ bool Model::updateGeometry() { · 313 unmodified lines
491 foreach (const FBXMesh& mesh, fbxGeometry.meshes) {499 foreach (const FBXMesh& mesh, fbxGeometry.meshes) {
492 MeshState state;500 MeshState state;
493 state.clusterMatrices.resize(mesh.clusters.size());501 state.clusterMatrices.resize(mesh.clusters.size());
502<<<<<<< HEAD
494 _meshStates.append(state);503 _meshStates.append(state);
495 504
496 gpu::BufferPointer buffer(new gpu::Buffer());505 gpu::BufferPointer buffer(new gpu::Buffer());
506=======
507 _meshStates.append(state);
508
509 auto buffer = std::make_shared<gpu::Buffer>();
510>>>>>>> cf88bce0820df76a55473370db0fcb8c5fe6763d
497 if (!mesh.blendshapes.isEmpty()) {511 if (!mesh.blendshapes.isEmpty()) {
498 buffer->resize((mesh.vertices.size() + mesh.normals.size()) * sizeof(glm::vec3));512 buffer->resize((mesh.vertices.size() + mesh.normals.size()) * sizeof(glm::vec3));
499 buffer->setSubData(0, mesh.vertices.size() * sizeof(glm::vec3), (gpu::Byte*) mesh.vertices.constData());513 buffer->setSubData(0, mesh.vertices.size() * sizeof(glm::vec3), (gpu::Byte*) mesh.vertices.constData());
@@ -906,7 +920,7 @@ bool Model::addToScene(std::shared_ptr<render::Scene> scene, render::PendingChan · 406 unmodified lines
906 foreach (auto renderItem, _transparentRenderItems) {920 foreach (auto renderItem, _transparentRenderItems) {
907 auto item = scene->allocateID();921 auto item = scene->allocateID();
908 auto renderData = MeshPartPayload::Pointer(renderItem);922 auto renderData = MeshPartPayload::Pointer(renderItem);
909 auto renderPayload = render::PayloadPointer(new MeshPartPayload::Payload(renderData));923 auto renderPayload = std::make_shared<MeshPartPayload::Payload>(renderData);
910 pendingChanges.resetItem(item, renderPayload);924 pendingChanges.resetItem(item, renderPayload);
911 _renderItems.insert(item, renderPayload);925 _renderItems.insert(item, renderPayload);
912 somethingAdded = true;926 somethingAdded = true;
@@ -915,7 +929,7 @@ bool Model::addToScene(std::shared_ptr<render::Scene> scene, render::PendingChan · 2 unmodified lines
915 foreach (auto renderItem, _opaqueRenderItems) {929 foreach (auto renderItem, _opaqueRenderItems) {
916 auto item = scene->allocateID();930 auto item = scene->allocateID();
917 auto renderData = MeshPartPayload::Pointer(renderItem);931 auto renderData = MeshPartPayload::Pointer(renderItem);
918 auto renderPayload = render::PayloadPointer(new MeshPartPayload::Payload(renderData));932 auto renderPayload = std::make_shared<MeshPartPayload::Payload>(renderData);
919 pendingChanges.resetItem(item, renderPayload);933 pendingChanges.resetItem(item, renderPayload);
920 _renderItems.insert(item, renderPayload);934 _renderItems.insert(item, renderPayload);
921 somethingAdded = true;935 somethingAdded = true;
@@ -936,7 +950,7 @@ bool Model::addToScene(std::shared_ptr<render::Scene> scene, render::PendingChan · 14 unmodified lines
936 foreach (auto renderItem, _transparentRenderItems) {950 foreach (auto renderItem, _transparentRenderItems) {
937 auto item = scene->allocateID();951 auto item = scene->allocateID();
938 auto renderData = MeshPartPayload::Pointer(renderItem);952 auto renderData = MeshPartPayload::Pointer(renderItem);
939 auto renderPayload = render::PayloadPointer(new MeshPartPayload::Payload(renderData));953 auto renderPayload = std::make_shared<MeshPartPayload::Payload>(renderData);
940 renderPayload->addStatusGetters(statusGetters);954 renderPayload->addStatusGetters(statusGetters);
941 pendingChanges.resetItem(item, renderPayload);955 pendingChanges.resetItem(item, renderPayload);
942 _renderItems.insert(item, renderPayload);956 _renderItems.insert(item, renderPayload);
@@ -946,7 +960,7 @@ bool Model::addToScene(std::shared_ptr<render::Scene> scene, render::PendingChan · 3 unmodified lines
946 foreach (auto renderItem, _opaqueRenderItems) {960 foreach (auto renderItem, _opaqueRenderItems) {
947 auto item = scene->allocateID();961 auto item = scene->allocateID();
948 auto renderData = MeshPartPayload::Pointer(renderItem);962 auto renderData = MeshPartPayload::Pointer(renderItem);
949 auto renderPayload = render::PayloadPointer(new MeshPartPayload::Payload(renderData));963 auto renderPayload = std::make_shared<MeshPartPayload::Payload>(renderData);
950 renderPayload->addStatusGetters(statusGetters);964 renderPayload->addStatusGetters(statusGetters);
951 pendingChanges.resetItem(item, renderPayload);965 pendingChanges.resetItem(item, renderPayload);
952 _renderItems.insert(item, renderPayload);966 _renderItems.insert(item, renderPayload);
@@ -2276,9 +2290,9 @@ void Model::segregateMeshGroups() { · 1323 unmodified lines
2276 for (int partIndex = 0; partIndex < totalParts; partIndex++) {2290 for (int partIndex = 0; partIndex < totalParts; partIndex++) {
2277 // this is a good place to create our renderPayloads2291 // this is a good place to create our renderPayloads
2278 if (translucentMesh) {2292 if (translucentMesh) {
2279 _transparentRenderItems << std::shared_ptr<MeshPartPayload>(new MeshPartPayload(true, this, i, partIndex));2293 _transparentRenderItems << std::make_shared<MeshPartPayload>(true, this, i, partIndex);
2280 } else {2294 } else {
2281 _opaqueRenderItems << std::shared_ptr<MeshPartPayload>(new MeshPartPayload(false, this, i, partIndex));2295 _opaqueRenderItems << std::make_shared<MeshPartPayload>(false, this, i, partIndex);
2282 }2296 }
2283 }2297 }
2284 }2298 }
@@ -2326,7 +2340,7 @@ bool Model::initWhenReady(render::ScenePointer scene) { · 41 unmodified lines
2326 foreach (auto renderItem, _transparentRenderItems) {2340 foreach (auto renderItem, _transparentRenderItems) {
2327 auto item = scene->allocateID();2341 auto item = scene->allocateID();
2328 auto renderData = MeshPartPayload::Pointer(renderItem);2342 auto renderData = MeshPartPayload::Pointer(renderItem);
2329 auto renderPayload = render::PayloadPointer(new MeshPartPayload::Payload(renderData));2343 auto renderPayload = std::make_shared<MeshPartPayload::Payload>(renderData);
2330 _renderItems.insert(item, renderPayload);2344 _renderItems.insert(item, renderPayload);
2331 pendingChanges.resetItem(item, renderPayload);2345 pendingChanges.resetItem(item, renderPayload);
2332 }2346 }
@@ -2334,7 +2348,7 @@ bool Model::initWhenReady(render::ScenePointer scene) { · 1 unmodified line
2334 foreach (auto renderItem, _opaqueRenderItems) {2348 foreach (auto renderItem, _opaqueRenderItems) {
2335 auto item = scene->allocateID();2349 auto item = scene->allocateID();
2336 auto renderData = MeshPartPayload::Pointer(renderItem);2350 auto renderData = MeshPartPayload::Pointer(renderItem);
2337 auto renderPayload = render::PayloadPointer(new MeshPartPayload::Payload(renderData));2351 auto renderPayload = std::make_shared<MeshPartPayload::Payload>(renderData);
2338 _renderItems.insert(item, renderPayload);2352 _renderItems.insert(item, renderPayload);
2339 pendingChanges.resetItem(item, renderPayload);2353 pendingChanges.resetItem(item, renderPayload);
2340 }2354 }