0
단색 OpenGL 텍스처에 NSString을 렌더링하고 싶습니다. iOS에서이 작업을 수행하는 방법에 대한 많은 예제를 발견했지만 OSX에서 작동하는 코드 스 니펫을 찾기 위해 고심하고 있습니다.OSX에서 단색 텍스처로 NSString 렌더링
GPU에 텍스처를 업로드하는 마지막 비트를 수행하는 방법을 알고 있지만 원시 (8 비트/픽셀) 데이터를 얻는 방법은 무엇입니까?
단색 OpenGL 텍스처에 NSString을 렌더링하고 싶습니다. iOS에서이 작업을 수행하는 방법에 대한 많은 예제를 발견했지만 OSX에서 작동하는 코드 스 니펫을 찾기 위해 고심하고 있습니다.OSX에서 단색 텍스처로 NSString 렌더링
GPU에 텍스처를 업로드하는 마지막 비트를 수행하는 방법을 알고 있지만 원시 (8 비트/픽셀) 데이터를 얻는 방법은 무엇입니까?
Apple의 Cocoa OpenGL code sample에서 GLString.m을 살펴보십시오. 단색 텍스처를 생성하기 위해 쉽게 수정할 수 있습니다.
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL pixelsWide:frameSize.width pixelsHigh:frameSize.height
bitsPerSample:8 samplesPerPixel:1 hasAlpha:NO isPlanar:NO colorSpaceName:NSDeviceWhiteColorSpace bitmapFormat:0 bytesPerRow:frameSize.width bitsPerPixel:8];
NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithBitmapImageRep:bitmap];
[NSGraphicsContext saveGraphicsState];
[NSGraphicsContext setCurrentContext:context];
…
[string drawAtPoint:NSMakePoint(marginSize.width, marginSize.height)]; // draw at offset position
…
[NSGraphicsContext restoreGraphicsState];
if (0 == texName)
glGenTextures (1, &texName);
glBindTexture (GL_TEXTURE_RECTANGLE_EXT, texName);
glTexSubImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, 0, 0, texSize.width, texSize.height, GL_LUMINANCE, GL_UNSIGNED_BYTE, [bitmap bitmapData]);
핵심 부품은 다음과 같습니다 :
이 예제에서는 RGB 텍스처를 생성하고 있습니다. 나는 단색을 원해. – hanno
NSBitmapImageRep을 좀더 직접적으로 사용하기는 쉽습니다. 나는 대답에서 이것을하는 방법을 확장했다. – bdash
감사합니다. drawAtPoint가 감가 상각 될 가능성이 있습니까? – hanno