🔬这里是怪物实验室,小心怪物出没!

MacOS Retina屏幕使用OpenGL帧缓冲仅显示部分图像

给一段使用glfw创建窗口的代码:

const GLuint SCREEN_WIDTH = 800; const GLuint SCREEN_HEIGHT = 600; GLFWwindow *window = glfwCreateWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "GuaikDemo", nullptr, nullptr);

我想创建一个800 * 600 像素的窗口程序,然后使用默认的帧缓冲可以正常的绘制出三角形或者纹理。

但是如果使用glGenFramebuffers等函数创建帧缓冲做后期处理,在MacOS中就出现问题了(只显示了左下角的1/4图像),效果图如下所示,在MacOS中仅显示部分图像,但是拖动到扩展屏后就一切正常。

这是为什么呢?既然是像素问题,那就把一些数据打印出来看看吧,在glfwCreateWindow之后使用glfwGetFramebufferSize函数把窗口的长宽像素打印出来看下

int ScreenX; int ScreenY; glfwGetFramebufferSize(window, &ScreenX, &ScreenY); std::cout << "Width: " << ScreenX << " Height: " << ScreenY << std::endl;

结果跟想的一样,虽然设置了800 * 600,但是打印结果是 Width: 1600 Height: 1200,都翻了一倍,所以最后在使用像素的任何地方都用glfwGetFramebufferSize获取到的宽高作为参数,并且glViewport也设置了同样的像素。

// 渲染 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glViewport(0, 0, ScreenX, ScreenY); ...... glfwSwapBuffers(window);

问题完美解决。

但是,在MacOS中显示正常了,拖动到扩展屏显示却出现异常,要解决这个问题的话应该检测当前所激活的显示设备,然后动态设置像素参数并调用glViewport。

read more

⚠️服务器重地,闲人免入!

NodeBB redirect fail after successfully login with Nginx proxy (SSL)
nginx configuration which uses SSL ### redirects http requests to https server { listen 80; server_name forum.example.org; return 302 https://$server_name$request_uri; } ### the https server server { # listen on ssl, deliver with speedy if possible listen 443 ssl spdy; server_name forum.example.org; # change these paths! ssl_certificate /path/to/cert/bundle.crt; ssl_certificate_key /path/to/cert/forum.example.org.key; # enables all versions of TLS, but not SSLv2 or 3 which are weak and now deprecated. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # disables all weak ciphers ssl_ciphers 'AES128+EECDH:AES128+EDH'; ssl_prefer_server_ciphers on; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:8888; proxy_redirect off; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } Nodebb config.json { "url": "https://xxx.domain.org", "secret": "UUID", "database": "mongo", "port": "8888", "mongo": { "host": "127.0.0.1", "port": "27017", "username": "", "password": "", "database": "nodebb", "uri": "" } }

read more

☢️AI病毒来袭,开启怪物HIPS系统……完成

VSCode+CMake开发NT式驱动程序

@pipi vscode还是比较好用的,我现在都很少用IDE了,除了开发Qt程序会用QtCreator

read more

🌋创造怪物的神秘区域

GuaiK Amazing
J

read more

⚙️Help!这里有急需处理的故障

lua基础问题

这个和lua table的实现有关
table默认有2种结构, 如果只有符合数组的形式(就是key必须是整数并且从1开始顺序按步长为1递增, 中间不允许间断), pairs会按照数组的形式去遍历. 其余情况全部按照hash的方式, hash情况下key是无序的
如果要强制按照数组形式遍历, 只能用ipairs. 他会强制按照数组的方式遍历.

read more

📢GuaiK战区,请时刻关注战报!

关于《怪客实验室》的LOGO
设计理念:

LOGO图形设计及字体设计,LOGO以乌鸦为设计原型,将带巫师帽的乌鸦拟人化成黑衣人形象,以怪化鸦及科学怪鸦为主轴。字体设计以乌鸦羽翼及乌鸦爪痕为原型。整体以黑白颜色为主,黑乌鸦及白底色,亦可白乌鸦及黑底色使用。

设计师:

@Joy

版权申明:

以下图案已注册版权保护,LOGO及字体设计可以免费非商业使用,若要使用需保留GuaiK、设计者及使用出处,否则视为侵权。

白底LOGO

黑底LOGO

read more

BBS状态

1
Online

33
Users

104
Topics

127
Posts

活跃用户