标签: glkview

绘制时GLKView为空白

我正在尝试使用GLKView将图像放入UITableViewCell来绘制图像.

我在故事板中有一个原型单元,我有一个GLKView.它没有选中Enable setNeedsDisplay.

原型单元有一个名为PhotoTableViewCell的自定义类

import UIKit
import GLKit

class PhotoTableViewCell: UITableViewCell {

  var eaglContext:EAGLContext!
  var ciContext:CIContext!
  var myImage:CIImage!

  @IBOutlet weak var photoGlView: GLKView!
  @IBOutlet weak var timeLabel: UILabel!
  @IBOutlet weak var cameraLabel: UILabel!
  @IBOutlet weak var notesLabel: UILabel!

  override func layoutSubviews() {
     self.photoGlView.delegate = self
 }

}

 extension PhotoTableViewCell: GLKViewDelegate {
   override func draw(_ rect: CGRect) {
       let drawableRectSize = CGSize(width: 200, height: 200)// width:   photoGlView.drawableWidth, height: photoGlView.drawableHeight)

      let drawableRect = CGRect(origin: CGPoint.zero, size: drawableRectSize)
      print("rect ->\(drawableRect)")
      print("rect size -> …
Run Code Online (Sandbox Code Playgroud)

xcode uitableview eaglcontext ios glkview

7
推荐指数
1
解决办法
491
查看次数

GLKit的-drawRect:在屏幕旋转期间不调用

我有一个GLKit基于应用程序,显示一些简单的对象.

一切正常,除了屏幕旋转,在此期间GLKView不更新(-drawRect:未调用).因此,在旋转期间,投影矩阵不会根据动态变化的屏幕尺寸进行更新,并且对象看起来很糟糕(拉伸).

screen-rotation ios auto-rotation glkit glkview

5
推荐指数
2
解决办法
1518
查看次数

CIImage显示MTKView与GLKView的性能

我有一系列UIImage(由来自服务器的传入jpeg数据制成),希望使用MTKView进行渲染。问题是,与GLKView相比,它太慢了。当我要在MTKView中显示一系列图像但在GLKView中没有延迟时,会有很多缓冲和延迟。

这是MTKView显示代码:

 private lazy var context: CIContext = {
    return CIContext(mtlDevice: self.device!, options: [CIContextOption.workingColorSpace : NSNull()])
}()

 var ciImg: CIImage? {
    didSet {
        syncQueue.sync {
            internalCoreImage = ciImg
        }
    }
}

 func displayCoreImage(_ ciImage: CIImage) {
    self.ciImg = ciImage
}

  override func draw(_ rect: CGRect) {
     var ciImage: CIImage?

    syncQueue.sync {
        ciImage = internalCoreImage
    }

    drawCIImage(ciImg)

}

 func drawCIImage(_ ciImage:CIImage?) {
    guard let image = ciImage,
        let currentDrawable = currentDrawable,
        let commandBuffer = commandQueue?.makeCommandBuffer()
        else {
            return
    }
    let currentTexture …
Run Code Online (Sandbox Code Playgroud)

opengl-es core-image ios glkview metalkit

5
推荐指数
0
解决办法
214
查看次数

glkview drawinrect委托方法只调用一次

我正在尝试将GLKViewController添加到我的UserInterfaceViewController.我正在使用来自raywenderlich教程的示例项目(http://www.raywenderlich.com/5235/beginning-opengl-es-2-0-with-glkit-part-2)

这是我的代码片段

#import <UIKit/UIKit.h>
@interface UserInterfaceViewController : UIViewController

@end

@implementation UserInterfaceViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}


- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.

    UIViewController *userInterfaceController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"HelloGLKitViewController"];

    userInterfaceController.view.frame = CGRectMake(50.0, 100.0, 200.0, 200.0);

    [self.view addSubview:userInterfaceController.view];
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在我所期望的框架中的UserInterfaceViewController视图中绘制了上下文.HelloGLKitViewController有代码在GLKViewControllerDelegate方法"update"中旋转多维数据集,如下所示.但是当HelloGLKitViewController查看到我的UserInterfaceViewController视图时,没有调用GLKViewControllerDelegate .

#import <GLKit/GLKit.h>
@interface HelloGLKitViewController : GLKViewController

@end

@implementation HelloGLKitViewController 

#pragma mark - GLKViewDelegate

- …
Run Code Online (Sandbox Code Playgroud)

iphone opengl-es-2.0 glkview

4
推荐指数
1
解决办法
2038
查看次数

试图嵌入PPSSignatureView对象

我正在尝试实现此类,以便我可以在我的应用程序中捕获签名:

PPSSignatureView *sign = [[PPSSignatureView alloc] initWithFrame:CGRectMake(10, 10, 500, 300)];
GLKViewController *glkView = [[GLKViewController alloc] init];
glkView.view = sign;
[self.view addSubview:glkView.view];
Run Code Online (Sandbox Code Playgroud)

我之前没有使用任何openGL组件,所以我不确定我是否正确设置了它.

(PPSSignatureView是GLKView的子类)

xcode opengl-es objective-c ios glkview

3
推荐指数
1
解决办法
984
查看次数

GLKView GLKMatrix4MakeLookAt描述和解释

对于modelviewMatrix,我了解如何形成转换和缩放Matrix。但是我无法理解如何使用来形成viewMatrix GLKMatrix4MakeLookAt。谁能解释它的工作原理以及如何给参数赋值(眼睛中心向上XYZ)。

GLK_INLINE GLKMatrix4 GLKMatrix4MakeLookAt(float eyeX, float eyeY, float eyeZ,
                                                  float centerX, float centerY, float centerZ,
                                                  float upX, float upY, float upZ)
Run Code Online (Sandbox Code Playgroud)

opengl objective-c matrix glkview

1
推荐指数
1
解决办法
2371
查看次数

connectionWithMediaType返回nil

我尝试使用glkview实现视频输入,但是当我尝试旋转旋转时总是从connectionWithMediaType返回nil.

这是我的设置

override public func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    videoFeed = GLKView(frame: self.view.bounds, context: EAGLContext(API: .OpenGLES2))
    videoFeed.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
    videoFeed.translatesAutoresizingMaskIntoConstraints = true
    videoFeed.contentScaleFactor = 1.0
    self.view.addSubview(videoFeed)
    renderContext  = CIContext(EAGLContext: videoFeed.context)
    sessionQueue = dispatch_queue_create("dCamSession", DISPATCH_QUEUE_SERIAL)
    videoFeed.bindDrawable()
}

override public func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    startSession()
}

func createSession() -> AVCaptureSession {
    let cam = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
    var input:AVCaptureInput
    do {
        input = try AVCaptureDeviceInput(device: cam)
    } catch _ as NSError {
        print("Cannot Init …
Run Code Online (Sandbox Code Playgroud)

ios avcapture avcapturesession glkview swift

1
推荐指数
1
解决办法
518
查看次数

核心图像渲染缓慢

我使用 ViewController、GLKView 和 UISlider 创建了测试应用程序。所选过滤器中的滑块更改值。渲染图像很慢。我的代码有什么问题?

GLKview的测试类:

import UIKit
import CoreImage
import GLKit

class CustomGLView: GLKView {
    //test filters 
    let clampFilter = CIFilter(name: "CIAffineClamp")!
    let blurFilter = CIFilter(name: "CIGaussianBlur")!
    let ciContext:CIContext

    override init(frame: CGRect) {
        let glContext = EAGLContext(api: .openGLES2)
        ciContext = CIContext(
            eaglContext: glContext!,
            options: [
                kCIContextWorkingColorSpace: NSNull()
            ]
        )
        super.init(frame: frame, context: glContext!)
        enableSetNeedsDisplay = true
    }

    required init(coder aDecoder: NSCoder) {
        let glContext = EAGLContext(api: .openGLES2)
        ciContext = CIContext(
            eaglContext: glContext!,
            options: [
                kCIContextWorkingColorSpace: NSNull()
            ]
        )
        super.init(coder: …
Run Code Online (Sandbox Code Playgroud)

rendering ios glkview swift

0
推荐指数
1
解决办法
1491
查看次数