Skip to content

Commit

Permalink
All examples 01-03 compile and run now.
Browse files Browse the repository at this point in the history
  • Loading branch information
jkolb committed Aug 6, 2017
1 parent 4deeae4 commit 809a954
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 45 deletions.
2 changes: 1 addition & 1 deletion 01-getting-started/01-hello-window-2/main.swift
Expand Up @@ -57,7 +57,7 @@ func main()
}

// called whenever a key is pressed/released via GLFW
func keyCallback(window: COpaquePointer, key: Int32, scancode: Int32, action: Int32, mode: Int32)
func keyCallback(window: OpaquePointer!, key: Int32, scancode: Int32, action: Int32, mode: Int32)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GL_TRUE)
Expand Down
14 changes: 7 additions & 7 deletions 01-getting-started/02-hello-triangle-1/main.swift
Expand Up @@ -63,12 +63,12 @@ func main()
glCompileShader(vertexShader)
// Check for compile time errors
var success:GLint = 0
var infoLog = [GLchar](count: 512, repeatedValue: 0)
var infoLog = [GLchar](repeating: 0, count: 512)
glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success)
guard success == GL_TRUE else
{
glGetShaderInfoLog(vertexShader, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// Fragment shader
let fragmentShader = glCreateShader(type: GL_FRAGMENT_SHADER)
Expand All @@ -82,7 +82,7 @@ func main()
guard success == GL_TRUE else
{
glGetShaderInfoLog(fragmentShader, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// Link shaders
let shaderProgram = glCreateProgram()
Expand All @@ -95,7 +95,7 @@ func main()
guard success == GL_TRUE else
{
glGetProgramInfoLog(shaderProgram, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// We no longer need these since they are in the shader program
glDeleteShader(vertexShader)
Expand All @@ -120,11 +120,11 @@ func main()

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: VBO)
glBufferData(target: GL_ARRAY_BUFFER,
size: strideof(GLfloat) * vertices.count,
size: MemoryLayout<GLfloat>.stride * vertices.count,
data: vertices, usage: GL_STATIC_DRAW)

glVertexAttribPointer(index: 0, size: 3, type: GL_FLOAT,
normalized: false, stride: GLsizei(strideof(GLfloat) * 3), pointer: nil)
normalized: false, stride: GLsizei(MemoryLayout<GLfloat>.stride * 3), pointer: nil)
glEnableVertexAttribArray(0)

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: 0) // Note that this is allowed,
Expand Down Expand Up @@ -161,7 +161,7 @@ func main()
}

// called whenever a key is pressed/released via GLFW
func keyCallback(window: COpaquePointer, key: Int32, scancode: Int32, action: Int32, mode: Int32)
func keyCallback(window: OpaquePointer!, key: Int32, scancode: Int32, action: Int32, mode: Int32)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GL_TRUE)
Expand Down
16 changes: 8 additions & 8 deletions 01-getting-started/02-hello-triangle-2/main.swift
Expand Up @@ -63,12 +63,12 @@ func main()
glCompileShader(vertexShader)
// Check for compile time errors
var success:GLint = 0
var infoLog = [GLchar](count: 512, repeatedValue: 0)
var infoLog = [GLchar](repeating: 0, count: 512)
glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success)
guard success == GL_TRUE else
{
glGetShaderInfoLog(vertexShader, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// Fragment shader
let fragmentShader = glCreateShader(type: GL_FRAGMENT_SHADER)
Expand All @@ -82,7 +82,7 @@ func main()
guard success == GL_TRUE else
{
glGetProgramInfoLog(fragmentShader, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// Link shaders
let shaderProgram = glCreateProgram()
Expand All @@ -95,7 +95,7 @@ func main()
guard success == GL_TRUE else
{
glGetShaderInfoLog(shaderProgram, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// We no longer need these since they are in the shader program
glDeleteShader(vertexShader)
Expand Down Expand Up @@ -136,16 +136,16 @@ func main()

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: VBO)
glBufferData(target: GL_ARRAY_BUFFER,
size: strideof(GLfloat) * vertices.count,
size: MemoryLayout<GLfloat>.stride * vertices.count,
data: vertices, usage: GL_STATIC_DRAW)

glBindBuffer(target: GL_ELEMENT_ARRAY_BUFFER, buffer: EBO)
glBufferData(target: GL_ELEMENT_ARRAY_BUFFER,
size: strideof(GLuint) * indices.count,
size: MemoryLayout<GLuint>.stride * indices.count,
data: indices, usage: GL_STATIC_DRAW)

glVertexAttribPointer(index: 0, size: 3, type: GL_FLOAT,
normalized: false, stride: GLsizei(strideof(GLfloat) * 3), pointer: nil)
normalized: false, stride: GLsizei(MemoryLayout<GLfloat>.stride * 3), pointer: nil)
glEnableVertexAttribArray(0)

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: 0) // Note that this is allowed,
Expand Down Expand Up @@ -186,7 +186,7 @@ func main()
}

// called whenever a key is pressed/released via GLFW
func keyCallback(window: COpaquePointer, key: Int32, scancode: Int32, action: Int32, mode: Int32)
func keyCallback(window: OpaquePointer!, key: Int32, scancode: Int32, action: Int32, mode: Int32)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GL_TRUE)
Expand Down
12 changes: 6 additions & 6 deletions 01-getting-started/03-shaders-class/main.swift
Expand Up @@ -63,17 +63,17 @@ func main()

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: VBO)
glBufferData(target: GL_ARRAY_BUFFER,
size: strideof(GLfloat) * vertices.count,
size: MemoryLayout<GLfloat>.stride * vertices.count,
data: vertices, usage: GL_STATIC_DRAW)

let pointer0offset = UnsafePointer<Void>(bitPattern: 0)
let pointer0offset = UnsafeRawPointer(bitPattern: 0)
glVertexAttribPointer(index: 0, size: 3, type: GL_FLOAT,
normalized: false, stride: GLsizei(strideof(GLfloat) * 6), pointer: pointer0offset)
normalized: false, stride: GLsizei(MemoryLayout<GLfloat>.stride * 6), pointer: pointer0offset)
glEnableVertexAttribArray(0)

let pointer1offset = UnsafePointer<Void>(bitPattern: strideof(GLfloat) * 3)
let pointer1offset = UnsafeRawPointer(bitPattern: MemoryLayout<GLfloat>.stride * 3)
glVertexAttribPointer(index: 1, size: 3, type: GL_FLOAT,
normalized: false, stride: GLsizei(strideof(GLfloat) * 6), pointer: pointer1offset)
normalized: false, stride: GLsizei(MemoryLayout<GLfloat>.stride * 6), pointer: pointer1offset)
glEnableVertexAttribArray(1)

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: 0) // Note that this is allowed,
Expand Down Expand Up @@ -114,7 +114,7 @@ func main()
}

// called whenever a key is pressed/released via GLFW
func keyCallback(window: COpaquePointer, key: Int32, scancode: Int32, action: Int32, mode: Int32)
func keyCallback(window: OpaquePointer!, key: Int32, scancode: Int32, action: Int32, mode: Int32)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GL_TRUE)
Expand Down
20 changes: 10 additions & 10 deletions 01-getting-started/03-shaders-interpolated/main.swift
Expand Up @@ -72,12 +72,12 @@ func main()
glCompileShader(vertexShader)
// Check for compile time errors
var success:GLint = 0
var infoLog = [GLchar](count: 512, repeatedValue: 0)
var infoLog = [GLchar](repeating: 0, count: 512)
glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success)
guard success == GL_TRUE else
{
glGetShaderInfoLog(vertexShader, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// Fragment shader
let fragmentShader = glCreateShader(type: GL_FRAGMENT_SHADER)
Expand All @@ -91,7 +91,7 @@ func main()
guard success == GL_TRUE else
{
glGetProgramInfoLog(fragmentShader, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// Link shaders
let shaderProgram = glCreateProgram()
Expand All @@ -104,7 +104,7 @@ func main()
guard success == GL_TRUE else
{
glGetShaderInfoLog(shaderProgram, 512, nil, &infoLog)
fatalError(String.fromCString(infoLog)!)
fatalError(String(cString:infoLog))
}
// We no longer need these since they are in the shader program
glDeleteShader(vertexShader)
Expand All @@ -128,17 +128,17 @@ func main()

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: VBO)
glBufferData(target: GL_ARRAY_BUFFER,
size: strideof(GLfloat) * vertices.count,
size: MemoryLayout<GLfloat>.stride * vertices.count,
data: vertices, usage: GL_STATIC_DRAW)

let pointer0offset = UnsafePointer<Void>(bitPattern: 0)
let pointer0offset = UnsafeRawPointer(bitPattern: 0)
glVertexAttribPointer(index: 0, size: 3, type: GL_FLOAT,
normalized: false, stride: GLsizei(strideof(GLfloat) * 6), pointer: pointer0offset)
normalized: false, stride: GLsizei(MemoryLayout<GLfloat>.stride * 6), pointer: pointer0offset)
glEnableVertexAttribArray(0)

let pointer1offset = UnsafePointer<Void>(bitPattern: strideof(GLfloat) * 3)
let pointer1offset = UnsafeRawPointer(bitPattern: MemoryLayout<GLfloat>.stride * 3)
glVertexAttribPointer(index: 1, size: 3, type: GL_FLOAT,
normalized: false, stride: GLsizei(strideof(GLfloat) * 6), pointer: pointer1offset)
normalized: false, stride: GLsizei(MemoryLayout<GLfloat>.stride * 6), pointer: pointer1offset)
glEnableVertexAttribArray(1)

glBindBuffer(target: GL_ARRAY_BUFFER, buffer: 0) // Note that this is allowed,
Expand Down Expand Up @@ -179,7 +179,7 @@ func main()
}

// called whenever a key is pressed/released via GLFW
func keyCallback(window: COpaquePointer, key: Int32, scancode: Int32, action: Int32, mode: Int32)
func keyCallback(window: OpaquePointer!, key: Int32, scancode: Int32, action: Int32, mode: Int32)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GL_TRUE)
Expand Down
27 changes: 14 additions & 13 deletions common/_Shader.swift
Expand Up @@ -29,17 +29,18 @@ public class Shader {
public convenience init(vertexFile:String, fragmentFile:String)
{
do {
let vertexData = try NSData(contentsOfFile: vertexFile,
options: [.DataReadingUncached, .DataReadingMappedAlways])
let fragmentData = try NSData(contentsOfFile: fragmentFile,
options: [.DataReadingUncached, .DataReadingMappedAlways])
let vertexString = NSString(data: vertexData, encoding: NSUTF8StringEncoding)
let fragmentString = NSString(data: fragmentData, encoding: NSUTF8StringEncoding)
self.init(vertex: String(vertexString!), fragment: String(fragmentString!))
let vertexData = try Data(contentsOf: URL(fileURLWithPath:vertexFile), options: [.uncached, .alwaysMapped])
let fragmentData = try Data(contentsOf: URL(fileURLWithPath:fragmentFile), options: [.uncached, .alwaysMapped])
let vertexString = String(data: vertexData, encoding: .utf8)!
let fragmentString = String(data: fragmentData, encoding: .utf8)!
self.init(vertex: vertexString, fragment: fragmentString)
}
catch let error as NSError {
fatalError(error.localizedFailureReason!)
}
catch {
fatalError(String(describing: error))
}
}


Expand All @@ -55,7 +56,7 @@ public class Shader {
}


private static func compileShader(shader: GLuint, source: String) -> String?
private static func compileShader(_ shader: GLuint, source: String) -> String?
{
source.withCString {
var s = [$0]
Expand All @@ -68,15 +69,15 @@ public class Shader {
var logSize:GLint = 0
glGetShaderiv(shader: shader, pname: GL_INFO_LOG_LENGTH, params: &logSize)
if logSize == 0 { return "" }
var infoLog = [GLchar](count: Int(logSize), repeatedValue: 0)
var infoLog = [GLchar](repeating: 0, count: Int(logSize))
glGetShaderInfoLog(shader: shader, bufSize: logSize, length: nil, infoLog: &infoLog)
return String.fromCString(infoLog)!
return String(cString:infoLog)
}
return nil
}


private static func linkProgram(program: GLuint, vertex: GLuint, fragment: GLuint) -> String?
private static func linkProgram(_ program: GLuint, vertex: GLuint, fragment: GLuint) -> String?
{
glAttachShader(program, vertex)
glAttachShader(program, fragment)
Expand All @@ -87,9 +88,9 @@ public class Shader {
var logSize:GLint = 0
glGetProgramiv(program: program, pname: GL_INFO_LOG_LENGTH, params: &logSize)
if logSize == 0 { return "" }
var infoLog = [GLchar](count: Int(logSize), repeatedValue: 0)
var infoLog = [GLchar](repeating: 0, count: Int(logSize))
glGetProgramInfoLog(program: program, bufSize: logSize, length: nil, infoLog: &infoLog)
return String.fromCString(infoLog)!
return String(cString:infoLog)
}
return nil
}
Expand Down

0 comments on commit 809a954

Please sign in to comment.