[Metaballs] Fallout from changes to MetaballsKit
This commit is contained in:
		
							parent
							
								
									48365abee3
								
							
						
					
					
						commit
						1f2469f686
					
				
					 3 changed files with 12 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -15,7 +15,7 @@ enum RendererError: Error {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
protocol RendererDelegate {
 | 
			
		||||
    var renderSize: CGSize { get set }
 | 
			
		||||
    var renderSize: Size { get set }
 | 
			
		||||
    var field: Field { get }
 | 
			
		||||
    var metalView: MTKView { get }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +68,7 @@ class Renderer: NSObject, MTKViewDelegate {
 | 
			
		|||
    /// MARK: - MTKViewDelegate
 | 
			
		||||
 | 
			
		||||
    func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
 | 
			
		||||
        delegate.renderSize = size
 | 
			
		||||
        delegate.renderSize = Size(size: size)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    func draw(in view: MTKView) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,11 @@ typedef struct {
 | 
			
		|||
    float2 textureCoordinate;
 | 
			
		||||
} RasterizerData;
 | 
			
		||||
 | 
			
		||||
typedef int3 Parameters;
 | 
			
		||||
typedef struct {
 | 
			
		||||
    short2 size;
 | 
			
		||||
    ushort numberOfBalls;
 | 
			
		||||
} Parameters;
 | 
			
		||||
 | 
			
		||||
typedef float3 Ball;
 | 
			
		||||
 | 
			
		||||
vertex RasterizerData
 | 
			
		||||
| 
						 | 
				
			
			@ -45,8 +49,7 @@ sampleToColorShader(RasterizerData in               [[stage_in]],
 | 
			
		|||
                    constant Parameters& parameters [[buffer(0)]],
 | 
			
		||||
                    constant Ball* balls            [[buffer(1)]])
 | 
			
		||||
{
 | 
			
		||||
    const uint numberOfBalls = parameters.z;
 | 
			
		||||
    const float sample = sampleAtPoint(in.position.xy, balls, numberOfBalls);
 | 
			
		||||
    const float sample = sampleAtPoint(in.position.xy, balls, parameters.numberOfBalls);
 | 
			
		||||
 | 
			
		||||
    const float target = 1.0;
 | 
			
		||||
//    const float variange = 0.08;
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +59,7 @@ sampleToColorShader(RasterizerData in               [[stage_in]],
 | 
			
		|||
    if (sample > target) {
 | 
			
		||||
        const float3 left = float3(0.50, 0.79, 1.00);
 | 
			
		||||
        const float3 right = float3(0.88, 0.50, 1.00);
 | 
			
		||||
        const float blend = in.position.x / parameters.x;
 | 
			
		||||
        const float blend = in.position.x / parameters.size.x;
 | 
			
		||||
        const float invBlend = 1.0 - blend;
 | 
			
		||||
        out = float4((blend * left.x + invBlend * right.x) / 2.0, (blend * left.y + invBlend * right.y) / 2.0, (blend * left.z + invBlend * right.z) / 2.0, 1.0);
 | 
			
		||||
    } else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,9 +11,9 @@ import MetalKit
 | 
			
		|||
import MetaballsKit
 | 
			
		||||
 | 
			
		||||
class ViewController: NSViewController, RendererDelegate {
 | 
			
		||||
    internal var field = Field(size: CGSize()) {
 | 
			
		||||
    internal var field = Field(size: Size()) {
 | 
			
		||||
        didSet {
 | 
			
		||||
            field.size = metalView.drawableSize
 | 
			
		||||
            field.size = Size(size: metalView.drawableSize)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ class ViewController: NSViewController, RendererDelegate {
 | 
			
		|||
 | 
			
		||||
    // MARK: - RendererDelegate
 | 
			
		||||
 | 
			
		||||
    var renderSize: CGSize {
 | 
			
		||||
    var renderSize: Size {
 | 
			
		||||
        get {
 | 
			
		||||
            return field.size
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue