对于维度考虑,我将opengl视图的大小调整为2.0比原点大小,如下所示:
NSInteger Dimension = 2;
self.glView = [[WQPaintGLView alloc] initWithFrame:CGRectMake(0, 0, width*Dimension, height*Dimension)];
CGAffineTransform tScale = CGAffineTransformMakeScale((float)1/Dimension, (float)1/Dimension);
CGAffineTransform tTranslate = CGAffineTransformTranslate(tScale, -width, -height);
self.glView.transform = tTranslate;
[self.canvasContainerView addSubview:self.glView];
但是得到一个奇怪的问题,请参阅:
我只能在左下角1/4区域画画。
我错了什么?
答案 0 :(得分:1)
UIView
转换和openGL不是很兼容。此外,在openGL初始化之后调整大小的视图可能很麻烦,并且在大多数情况下必须从视图中创建新的渲染缓冲区。
无论如何,由于您将视图缩放为具有更大的曲面,因此您应该检查以下调用:
glViewport
应该定义您正在编写的缓冲区的哪个部分。通常它设置为(0,0,viewWidth,viewHeight)。在您的情况下,它也必须包括比例。glOrtho
(或glFrustum
)定义您的坐标系(如果使用)。无论视图比例如何,这些都应该是相同的。如果可能,请删除视图上的转换并尝试找到更好的解决方案。