- http://courses.cms.caltech.edu/cs179/
- http://www.amd.com/Documents/GCN_Architecture_whitepaper.pdf
- https://community.arm.com/graphics/b/blog
- http://cdn.imgtec.com/sdk-documentation/PowerVR+Hardware.Architecture+Overview+for+Developers.pdf
- http://cdn.imgtec.com/sdk-documentation/PowerVR+Series5.Architecture+Guide+for+Developers.pdf
- https://www.imgtec.com/blog/a-look-at-the-powervr-graphics-architecture-tile-based-rendering/
- https://www.imgtec.com/blog/the-dr-in-tbdr-deferred-rendering-in-rogue/
- http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/opencl-optimization-guide/#50401334_pgfId-412605
- https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/
- https://community.arm.com/graphics/b/documents/posts/moving-mobile-graphics#siggraph2015
Rob Mayoff mayoff
- Austin, Texas, USA, Earth
- Sign in to view email
- http://qwan.org/about-the-author/
View convert.swift
import Dispatch | |
import Foundation | |
var x = 7 | |
let dd = withUnsafeBytes(of: &x, { DispatchData.init(bytes: $0) }) | |
print(dd as? Data) // Case 1: nil | |
print(dd as? NSData) // Case 2: nil | |
print(dd as Any as? Data) // Case 3: nil | |
print(dd as Any as? NSData) // Case 4: .some | |
print(dd as Any as? NSData as Data?) // Case 5: .some |
View StrokedPath.swift
import UIKit | |
import ImageIO | |
import MobileCoreServices | |
import PlaygroundSupport | |
let documentFolderUrl = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) | |
print(documentFolderUrl) | |
class ShapeView: UIView { | |
override class var layerClass: AnyClass { return CAShapeLayer.self } |
View step1.sh
if [[ $(defaults read com.apple.Finder CreateDesktop 2>/dev/null) = YES ]]; then | |
defaults write com.apple.Finder CreateDesktop NO | |
else | |
defaults write com.apple.Finder CreateDesktop YES | |
fi |
View finder_icons.sh
#!/bin/sh | |
defaults read com.apple.finder CreateDesktop > /dev/null 2>&1 | |
enabled=$? | |
if [ "$1" = "off" ]; then | |
if [ $enabled -eq 1 ]; then | |
defaults write com.apple.finder CreateDesktop false | |
osascript -e 'tell application "Finder" to quit' | |
open -a Finder |
View main.m
@import Foundation; | |
@import CoreGraphics; | |
typedef struct __attribute__((objc_boxable)) CGPoint CGPoint; | |
typedef struct __attribute__((objc_boxable)) CGSize CGSize; | |
typedef struct __attribute__((objc_boxable)) CGRect CGRect; | |
typedef struct __attribute__((objc_boxable)) CGVector CGVector; | |
int main(int argc, const char * argv[]) { | |
@autoreleasepool { |
View gpu_arch_resources.md
View FormatOptions.swift
// For https://twitter.com/nicklockwood/status/819938181483233285 | |
protocol Withable { | |
init() | |
} | |
extension Withable { | |
func with(_ body: (inout Self) -> ()) -> Self { | |
var copy = self | |
body(©) |
View NSDateFormatter cheat sheet
a: AM/PM | |
A: 0~86399999 (Millisecond of Day) | |
c/cc: 1~7 (Day of Week) | |
ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat | |
cccc: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday | |
d: 1~31 (0 padded Day of Month) | |
D: 1~366 (0 padded Day of Year) | |
View NSBezierPath-CGPath.swift
import AppKit | |
public extension NSBezierPath { | |
public var CGPath: CGPath { | |
let path = CGMutablePath() | |
var points = [CGPoint](repeating: .zero, count: 3) | |
for i in 0 ..< self.elementCount { | |
let type = self.element(at: i, associatedPoints: &points) | |
switch type { |
View Issue.md
Summary text.
Hello World, how is it going?