RLT*_*RLT 20 opengl macos cocoa core-animation core-graphics
我试图找出背景中实际发生的事情(请看图片)
正如您在图像中看到的,我添加了几个按钮,并从"界面"构建器中检查了窗口的"内容视图".
现在我们知道它会利用核心动画或说会创建图层.(如果我错了,请纠正我.还在学习...)
我想知道这些按钮是如何绘制的?
我的假设是当我们勾选内容视图时,这些按钮是从CGBitmapContextRef绘制的,并且从它创建的位图被移交给Core Animation(OpenGL).但到目前为止我无法证明这一点.我该如何证明?任何一个例子或一些方法的想法都会很棒?
我确定是从CGBitmapContextRef创建的按钮.但是那些按钮图像会发生什么变化是未知的.
任何人都可以解释这种整合怎么可能?这些图像将如何出现在屏幕上?
编辑:
要添加有关同一主题的更多信息,请查看下面的图片,了解OpenGL的各个层次.我想我的目标是普通的OpenGL Framework层.
按钮在 CGBitmapContextRef 上绘制。
可以说,我们创建了 CGBitmapContextRef 对象
CGContextRef CGBitmapContextCreate (
void *data,
size_t width,
size_t height,
size_t bitsPerComponent,
size_t bytesPerRow,
CGColorSpaceRef colorspace,
CGBitmapInfo bitmapInfo
);
Run Code Online (Sandbox Code Playgroud)
这里void *data
, 是指向内存中要渲染绘图的目的地的指针。
然后可以使用 CGContext API 对data
. 因此可以在其上绘制按钮和背景。
完成后,我们可以释放 CGContextRef,但数据仍然在内存中,可以传递给 OpenGLContext( CGLContextObj
)。
我还是不知道它是如何上传data
到的CGLContextObj
。必须使用一些私有 api。
归档时间: |
|
查看次数: |
1130 次 |
最近记录: |