当前位置: 首页 > news >正文

厦门 网站建设公司电话做网站要服务器和什么软件

厦门 网站建设公司电话,做网站要服务器和什么软件,互联网保险销售行为可回溯管理办法,优秀网站设计效果图文中若有代码、术语等错误#xff0c;欢迎指正 文章目录 前言如何确定GLFW窗口事件的回调函数参数Application接收事件回调流程原项目流程(12345)自己写的简单Demo与流程(123) 前言 此节目的 为了完成008计划窗口事件的接收glfw窗口事件以及回调部分 此节要完成 使用glfw函数… 文中若有代码、术语等错误欢迎指正 文章目录 前言如何确定GLFW窗口事件的回调函数参数Application接收事件回调流程原项目流程(12345)自己写的简单Demo与流程(123) 前言 此节目的 为了完成008计划窗口事件的接收glfw窗口事件以及回调部分 此节要完成 使用glfw函数可以设置拦截真正窗口事件的回调函数在回调函数中转换为我们自定义的事件再回调给Application的OnEventOnEvent拦截对应的事件 图示部分 图中是将Appilication的事件给Layer去处理但本节是Application自己拦截事件并处理修改后的图如下 如何确定GLFW窗口事件的回调函数参数 引出 glfwSetKeyCallback(m_Window, [](GLFWwindow* window, int key, int scancode, int action, int mods)如上代码用lambda接收GLFW按键事件可是为什么能确定lambda的参数 需要ctrl左键点开glfwSetKeyCallback Application接收事件回调流程 原项目流程(12345) 对应第二张图按照1、2、3、4、5顺序 Application #include hzpch.h #include Application.h #include Hazel/Log.h #include GLFW/glfw3.h namespace Hazel {#define BIND_EVENT_FN(x) std::bind(Application::x, this, std::placeholders::_1)Application::Application(){// 1.1Application创建窗口m_Window std::unique_ptrWindow(Window::Create());// 1.2Application设置窗口事件的回调函数m_Window-SetEventCallback(BIND_EVENT_FN(OnEvent));}// 回调glfw窗口事件的函数void Application::OnEvent(Event e){// 4.用事件调度器拦截自己层想要拦截的事件并处理EventDispatcher dispatcher(e);dispatcher.DispatchWindowCloseEvent(BIND_EVENT_FN(OnWindowClose));HZ_CORE_TRACE({0}, e);}void Application::Run(){while (m_Running){glClearColor(1, 0, 1, 1);glClear(GL_COLOR_BUFFER_BIT);m_Window-OnUpdate(); // 更新glfw}}// 5.执行Application的OnWinClose函数拦截处理event事件bool Application::OnWindowClose(WindowCloseEvent e){m_Running false;return true;} }WindowsWindow.cpp // 2.1window创建窗口 m_Window glfwCreateWindow((int)props.Width, (int)props.Height, m_Data.Title.c_str(), nullptr, nullptr); // 设置glfw当前的上下文 glfwMakeContextCurrent(m_Window); /*设置窗口关联的用户数据指针。这里GLFW仅做存储不做任何的特殊处理和应用。window表示操作的窗口句柄。pointer表示用户数据指针。 */ glfwSetWindowUserPointer(m_Window, m_Data); SetVSync(true); // 2.2设置glfw事件回调接收glfw窗口事件 glfwSetWindowSizeCallback(m_Window, [](GLFWwindow* window, int width, int height){// glfwGetWindowUserPointer获取void*指针可以转换为由glfwSetWindowUserPointer自定义数据类型WindowData data *(WindowData*)glfwGetWindowUserPointer(window);data.Width width;data.Height height;// 2.3将glfw窗口事件转换为自定义的事件WindowResizeEvent event(width, height);// 3.回调Application的OnEvent函数并将事件作为其OnEvent的参数data.EventCallback(event); });效果 自己写的简单Demo与流程(123) 对应第二张图的1、2、3步少了4、5步可以回到009.事件系统-自定义事件细看整个事件系统的设计与流程 #include iostream #include string #include functional using namespace std; using namespace std::placeholders;// 占位符空间// 事件类定义// class Event { // 事件基类 public:virtual void Say() { cout Event::Say() endl; }bool m_Handled; // 事件是否处理完 }; class WindowCloseEvent : public Event { // 窗口关闭事件子类 public:virtual void Say() { cout WindowEvent::Say() endl;} };// 窗口类定义// class Window { public:using EventCallbackFn std::functionvoid(Event); // 声明function类型void function(Event)static Window* CreateWindow() { // 模拟创建窗口return new Window;}void SetEventCallback(const EventCallbackFn callback) {EventCallback callback; // 绑定Application::OnEvent}void SendEvent() {cout Window::模拟glfw窗口事件 endl;// 2.将glfw窗口事件封装成自己系统的事件WindowCloseEvent windowe;// 3.回调Application的OnEvent函数并将事件作为其OnEvent的参数EventCallback(windowe);}EventCallbackFn EventCallback; // 定义function };// 应用层类定义// class Application { public:Window* win; // 持有的窗口类void OnEvent(Event event) {event.Say();cout Application::OnEvent(Event event) endl;// 4.Application的OnEvent将事件传递给Application的所有Layer层的OnEvent// ......} }; int main() {Application app;// 1.1Application对象创建窗口类窗口类初始化了glfw窗口app.win Window::CreateWindow();// 1.2Application设置窗口事件的回调函数app.win-SetEventCallback(bind(Application::OnEvent, app, _1));// bind的argument1是函数地址arug2是哪个类arug3是调用OnEvent的参数// 1.3模拟glfw窗口事件app.win-SendEvent();return 0; }少了Application自己拦截处理事件
http://www.hkea.cn/news/14291984/

相关文章:

  • 有免费做网站的吗个人免费建站软件
  • 中企动力网站建设湛江企业网站seo
  • seo技术交流论坛福州百度推广排名优化
  • 企业网站建设框架seo怎么优化关键词排名
  • 网站运营管理方案微信分销系统价格
  • 如何做网络网站推广昆明专业网站建设公司
  • 网站设计与建设课后题答案企业服务app下载
  • 西宁建一个网站公司台州网站建设网站
  • 网站建设培训视频织梦网站首页模板路径
  • 做数据同步的两个网站网站制作公司教你怎么制作网站
  • 关于网站建设的问卷调查电脑租赁平台哪个好
  • WordPress网站封装app教程正规手游代理平台有哪些
  • wordpress 产品属性泉州百度网站快速优化
  • 专业做蛋糕视频网站免费在线观看电影
  • wordpress xss跨站脚本漏洞杭州seo中心
  • 淘宝上网站开发退款重庆免费网站推广软件
  • 淘宝客单页网站怎么做漯河市建设工程信息网
  • 去类似美团网站做软件开发kingcms 暂未创建网站首页
  • flash做网站哪个网站有教做面食
  • 芯港小镇建设管理中心网站如何进行网络营销服务创新
  • 佛山网站建设设计公司做网站 江门
  • 做一个信息网站多少钱php 禁止电脑访问网站
  • 创业开网站建设公司东道官网
  • 网站建设开发文档线上平台推广是做什么的
  • 金坛市政建设有限公司网站互联网网站分了
  • 网站后台ftp账户上海网站设计工具
  • 石桥铺做网站成都门户网站
  • 网站建设的主要观点企业信息化建设方案 网站
  • 汽车美容网站模板岗巴网站建设
  • 做网站用什么源码福田欧辉新能源公交车