在_tWinMain中有这样两条语句: MainWindowDelegate delegate; view::Window::CreateNativeWindow(NULL, gfx::Rect(), &delegate); 从这开始窗口相关的探索,目的就是要找到WNDCLASS注册与CreateWindow的地方.Window类顾名思义就是的窗口.chromium对原始窗口做的封装.window相关的类主要有Window / WindowDelegate / WindowWin / Widge…
Message framework 是对消息循环的封装和扩展,Chromium在消息循环中增加处理内部任务的工作.将内部工作处理寄生在Windows的消息循环中,会有一个问题,就是没有Windows自身消息,而有Chromium内部工作,此时内部动作就无法及时处理.Chromium这里定义了一个自定义消息kMsgHaveWork,用来在Chromium内部有工作的时候,驱动Windows的消息一直会运行. 从代码级别来说,Chromium内部工作队列被塞入工作时Post一条kMsgHaveWor…
ChromiumFrame的入口函数在main.cpp中,打开main.cpp.中包含3个类和_tWinMain函数._tWinMain就是我们要找的入口函数.我做了部分注释: int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // 1. 支持OLE,退出管理机制,GDIPlus 初始化,本地资源管理(new) HRESULT hRes =…
本人能力有效,面对chromium庞大的代码就头大.还是先由前辈的chromiumFrame入手. 1. chromeFrame概貌 chromiumFrame是前辈的心血之作,以最小化的方式抽出chromium界面部分的代码,并以demo的方式展现给我.让我可以不用直接面对chromium这样的庞然大物. 先看看chromiumFrame目录结构, animation,静态库,动画类. base,基础静态库,一些logging,只能指针等基础的东东. gfx,画图的基础库,对windows上的…
本打算在CSDN写完这系列文字,却因为在CSDN中误删了一篇blog,该篇blog被移到了回收站.然而CSDN居然没有从回收站撤销删除的操作方法.联想到之前CSDN泄密的问题,其可靠性值得怀疑.随转向CNBlog来写这些文字. 偷得浮生半日闲.忙中偷闲看看chromium代码.看过一段,不禁感慨,不亏是一流的公司,写出的架构也是不一般.不看代码,就凭chrome在windows上运行的效率也能感受到chromium代码上的高效. 本人能有幸看到chromium的源代码,还要感谢google为开源…
===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL2源代码分析2:窗口(SDL_Window) SDL2源代码分析3:渲染器(SDL_Renderer) SDL2源代码分析4:纹理(SDL_Texture) SDL2源代码分析5:更新纹理(SDL_UpdateTexture()) SDL2源代码分析6:复制到渲染器(SDL_RenderCopy()…
如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBatis data mapper framework makes it easier to use a relational database with object-oriented applications. MyBatis couples objects with stored procedur…
从决定写Spark SQL文章的源代码分析,到现在一个月的时间,一个又一个几乎相同的结束很快,在这里也做了一个综合指数,方便阅读,下面是读取顺序 :) 第一章 Spark SQL源代码分析之核心流程 第二篇 Spark SQL Catalyst源代码分析之SqlParser 第三篇 Spark SQL Catalyst源代码分析之Analyzer 第四篇 Spark SQL Catalyst源代码分析之TreeNode Library 第五篇 Spark SQL Catalyst源代码分析之Op…
一.概述 TreeMap是基于红黑树实现的.因为TreeMap实现了java.util.sortMap接口,集合中的映射关系是具有一定顺序的,该映射依据其键的自然顺序进行排序或者依据创建映射时提供的Comparator进行排序,详细取决于使用的构造方法. 另外TreeMap中不同意键对象是null. 1.什么是红黑树? 红黑树是一种特殊的二叉排序树.主要有下面几条基本性质: 每一个节点都仅仅能是红色或者黑色 根节点是黑色 每一个叶子节点是黑色的 假设一个节点是红色的,则它的两个子节点都是黑色的…
===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL2源代码分析2:窗口(SDL_Window) SDL2源代码分析3:渲染器(SDL_Renderer) SDL2源代码分析4:纹理(SDL_Texture) SDL2源代码分析5:更新纹理(SDL_UpdateTexture()) SDL2源代码分析6:复制到渲染器(SDL_RenderCopy()…