Skip to content

Instantly share code, notes, and snippets.

View nbhasin2's full-sized avatar

Nishant Bhasin nbhasin2

View GitHub Profile
@nbhasin2
nbhasin2 / Renderer_Step6.swift
Last active April 2, 2025 06:52
Renderer_Step6.swift
// Renderer.swift
import MetalKit
import SwiftUI
class Renderer: NSObject, MTKViewDelegate {
var device: MTLDevice!
var commandQueue: MTLCommandQueue!
var pipelineState: MTLRenderPipelineState!
var time: Float = 0.0
@nbhasin2
nbhasin2 / Shaders_Step6.metal
Last active April 2, 2025 06:52
Shaders_Step6.metal
// Shaders.metal
#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
float2 texCoords;
};
vertex VertexOut circle_vertex(uint vertexID [[vertex_id]]) {
@nbhasin2
nbhasin2 / Shaders_Step5.metal
Last active April 2, 2025 06:51
Shaders_Step5.metal
// Shaders.metal
#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
float2 texCoords;
};
@nbhasin2
nbhasin2 / Renderer_Step5.swift
Last active April 2, 2025 06:51
Renderer_Step5.swift
// Renderer.swift
import MetalKit
import SwiftUI
class Renderer: NSObject, MTKViewDelegate {
var device: MTLDevice!
var commandQueue: MTLCommandQueue!
var pipelineState: MTLRenderPipelineState!
var time: Float = 0.0
@nbhasin2
nbhasin2 / Shaders_Step4.metal
Last active April 2, 2025 06:50
Shaders_Step4.metal
// Shaders.metal
#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
float2 texCoords;
};
@nbhasin2
nbhasin2 / Renderer_Step4.swift
Last active April 2, 2025 06:50
Renderer_Step4.swift
import MetalKit
import SwiftUI
class Renderer: NSObject, MTKViewDelegate {
var device: MTLDevice!
var commandQueue: MTLCommandQueue!
var pipelineState: MTLRenderPipelineState!
var time: Float = 0.0
init(device: MTLDevice) {
@nbhasin2
nbhasin2 / Renderer_Step3.swift
Last active April 2, 2025 06:50
Renderer_Step3.swift
// Renderer.swift
import MetalKit
import SwiftUI
class Renderer: NSObject, MTKViewDelegate {
var device: MTLDevice!
var commandQueue: MTLCommandQueue!
var pipelineState: MTLRenderPipelineState!
init(device: MTLDevice = MTLCreateSystemDefaultDevice()!) {
@nbhasin2
nbhasin2 / Shaders_Step3.metal
Last active April 2, 2025 06:54
Shaders_Step3.metal
#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
float2 texCoords;
};
vertex VertexOut circle_vertex(uint vertexID [[vertex_id]]) {
float2 positions[4] = {
@nbhasin2
nbhasin2 / Shaders_Step2.metal
Last active April 2, 2025 06:48
Shaders_Step2.metal
#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
float2 texCoords;
};
vertex VertexOut circle_vertex(uint vertexID [[vertex_id]]) {
float2 positions[4] = {
@nbhasin2
nbhasin2 / Renderer_Step2.swift
Last active April 2, 2025 06:48
Renderer_Step2.swift
// Renderer.swift
import MetalKit
import SwiftUI
class Renderer: NSObject, MTKViewDelegate {
var device: MTLDevice!
var commandQueue: MTLCommandQueue!
var pipelineState: MTLRenderPipelineState!
init(device: MTLDevice = MTLCreateSystemDefaultDevice()!) {