我试图让着色器在具有OpenGL 4核心配置文件的MFC应用程序中工作.
我在Win32应用程序中这样做以确保它可以工作(确实如此,在窗口的下半部分绘制一个三角形):
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance; // Store instance handle in our global variable
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
m_hDC = ::GetDC(hWnd);
PIXELFORMATDESCRIPTOR pfd;
memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion = 1;
pfd.dwFlags = PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cDepthBits = 32;
pfd.iLayerType = PFD_MAIN_PLANE;
int nPixelFormat = ChoosePixelFormat(m_hDC, &pfd);
if …Run Code Online (Sandbox Code Playgroud) 在Effective Objective-C 2.0中,有以下代码段:
@interface EOCClass : NSObject {
id _object;
}
@end
@implementation EOCClass
- (void)setup{
_object = [EOCOtherClass new];
}
@end
Run Code Online (Sandbox Code Playgroud)
然后,作者说:
"_object实例变量不会在手动引用计数下自动保留其值,但在ARC下也是如此."
我在XCode中测试了上面的代码片段,实例变量确实保留了值(即一切似乎都正常).
作者对上述句子的意思是什么?