The Skung Cave commit
This commit is contained in:
@ -35,7 +35,7 @@ extension ContentManager
|
||||
loaders[ext] = loader
|
||||
}
|
||||
|
||||
public mutating func create(mesh: Mesh) throws -> RenderMesh
|
||||
public mutating func create<V: Vertex>(mesh: Mesh<V>) throws -> RenderMesh<V>
|
||||
{
|
||||
let rendMesh = try renderer.createMesh(mesh: mesh)
|
||||
resources.append(rendMesh)
|
||||
@ -72,13 +72,18 @@ extension ContentManager
|
||||
{
|
||||
let resourceUrl = try getResource(path)
|
||||
|
||||
let loader = loaders[resourceUrl.pathExtension]
|
||||
let loader = loaders[resourceUrl.pathExtension.lowercased()]
|
||||
guard let resource = loader?.load(url: resourceUrl)
|
||||
else { throw ContentError.loadFailure }
|
||||
|
||||
if T.self == Mesh.self
|
||||
if T.self == Mesh<VertexPositionNormalTexcoord>.self
|
||||
{
|
||||
guard let mesh = resource as? Mesh else { throw ContentError.loadFailure }
|
||||
guard let mesh = resource as? Mesh<VertexPositionNormalTexcoord> else { throw ContentError.loadFailure }
|
||||
return mesh as! T
|
||||
}
|
||||
if T.self == Mesh<VertexPositionNormalColourTexcoord>.self
|
||||
{
|
||||
guard let mesh = resource as? Mesh<VertexPositionNormalTexcoord> else { throw ContentError.loadFailure }
|
||||
return mesh as! T
|
||||
}
|
||||
if T.self == Image.self
|
||||
@ -100,13 +105,18 @@ extension ContentManager
|
||||
{
|
||||
let resourceUrl = try getResource(path)
|
||||
|
||||
let loader = loaders[resourceUrl.pathExtension]
|
||||
let loader = loaders[resourceUrl.pathExtension.lowercased()]
|
||||
guard let resource = loader?.load(url: resourceUrl)
|
||||
else { throw ContentError.loadFailure }
|
||||
|
||||
if T.self == Mesh.self
|
||||
if T.self == Mesh<VertexPositionNormalTexcoord>.self
|
||||
{
|
||||
guard let mesh = resource as? Mesh else { throw ContentError.loadFailure }
|
||||
guard let mesh = resource as? Mesh<VertexPositionNormalTexcoord> else { throw ContentError.loadFailure }
|
||||
return mesh as! T
|
||||
}
|
||||
if T.self == Mesh<VertexPositionNormalColourTexcoord>.self
|
||||
{
|
||||
guard let mesh = resource as? Mesh<VertexPositionNormalTexcoord> else { throw ContentError.loadFailure }
|
||||
return mesh as! T
|
||||
}
|
||||
if T.self == Image.self
|
||||
@ -131,9 +141,15 @@ extension ContentManager
|
||||
guard let resource = loader?.load(url: resourceUrl)
|
||||
else { throw ContentError.loadFailure }
|
||||
|
||||
if T.self == RenderMesh.self
|
||||
if T.self == RenderMesh<VertexPositionNormalTexcoord>.self
|
||||
{
|
||||
guard let mesh = resource as? Mesh else { throw ContentError.loadFailure }
|
||||
guard let mesh = resource as? Mesh<VertexPositionNormalTexcoord> else { throw ContentError.loadFailure }
|
||||
let renderResource = try self.create(mesh: mesh)
|
||||
return renderResource as! T
|
||||
}
|
||||
if T.self == RenderMesh<VertexPositionNormalColourTexcoord>.self
|
||||
{
|
||||
guard let mesh = resource as? Mesh<VertexPositionNormalColourTexcoord> else { throw ContentError.loadFailure }
|
||||
let renderResource = try self.create(mesh: mesh)
|
||||
return renderResource as! T
|
||||
}
|
||||
@ -144,9 +160,13 @@ extension ContentManager
|
||||
{
|
||||
for resource in resources.reversed()
|
||||
{
|
||||
if resource is RenderMesh
|
||||
if resource is RenderMesh<VertexPositionNormalTexcoord>
|
||||
{
|
||||
renderer.deleteMesh(resource as! RenderMesh)
|
||||
renderer.deleteMesh(resource as! RenderMesh<VertexPositionNormalTexcoord>)
|
||||
}
|
||||
else if resource is RenderMesh<VertexPositionNormalColourTexcoord>
|
||||
{
|
||||
renderer.deleteMesh(resource as! RenderMesh<VertexPositionNormalColourTexcoord>)
|
||||
}
|
||||
else if resource is RenderTexture2D
|
||||
{
|
||||
|
Reference in New Issue
Block a user