摘要: 上回说到数据与界面基本分离, 并可以进行单元测试. 这次的目标是仿照MVVM的模式, 进行数据和事件的绑定, UI与事件分离. 首先, 新建一个MyViewModel类,来保存数据和事件函数. UI需要更新Lebel, 需要监听MyViewMode中数据更新.因此引进了观察者模式. Code Snippet class wxString; struct ISystemEventListener { virtual void OnSystemEvent(const wxString& propertyName) = 0; }; struct ISystemEventDi... 阅读全文
posted @ 2012-03-14 23:41 柿子院 阅读(1745) 评论(1) 推荐(2) 编辑
摘要: 第一步的目标是, 数据与UI的分离.我是这样做, 新建MyData类, 把数据移动到GetName()中. Code Snippet static wxString MyData::GetName() { static int clickNum=0; ++clickNum; wxString result; if (clickNum % 2) { result.assign(_T("Hello BianBian!")); } return result; } 那么 点击事件就可以改为, Code Snippet void MyDialog::OnCl... 阅读全文
posted @ 2012-03-11 11:27 柿子院 阅读(1178) 评论(0) 推荐(1) 编辑
摘要: 开始这个系列希望能找到一条路,能把MVVM的想法用到wxWidgets上.也希望能找到一个方法能把单元测试与界面结合在一起. MVVM 示意图 就从Hello World! 开始吧,如下一个程序. 以点击次数来决定显示或不显示 “Hello BianBian!”. 代码如下, 绑定 OnClickButton 函数到 Button 的 EVT_BUTTON 的事件上. 这样数据,逻辑和UI就混合在一起,很不好. 不方便测试 Code Snippet void MyDialog::OnClickButton( wxCommandEvent& eve... 阅读全文
posted @ 2012-03-10 17:05 柿子院 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 先上图: 这两天主要做了几件事: 1. 修改了左边FileList窗口. 问题 1) wxListCtrl 控件 list模式下以行为主. 改用report模式, 设置为单列, 并隐藏列头, 代码如下 m_pListCtrl = new MyListCtrl(this, MyListCtrl::ID_LISTCTRL, wxDefaultPosition, wxSize(200, -1), wxLC_REPORT| wxLC_SINGLE_SEL| wxSUNKEN_BORDER| wxLC_NO_HEADER ); wxListItem itemCol; itemCol.Set... 阅读全文
posted @ 2012-02-14 22:30 柿子院 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 最近的结果. wxWidgets中的Combobox和Choice的下拉栏不能显示超长的字, 使用 wxOwnerDrawnComboBox 就解决了. 左边的文件列表的问题下一步解决. wxWidgets可以使用 DialogBlocks 边做边学, 快速看到控件属性的结果. 最近写wxWidgets越来越顺手了, 其中用代码写控件也很简单, 尤其使用了sizer进行布局, 便脱离了要输入pos或size的问题,这也许就是sizer的初衷. wxWidgets中工具类的使用非常方便, 只需包括一个1mb多的dll. 阅读全文
posted @ 2012-02-11 00:06 柿子院 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 先从模仿Composer的界面开始. 目前的进展: 不用不知道,虽然wxweidgets有很多界面工具如DialogBlocks(DB), 但仍然不好使. 我使用wxAui界面, DialogBlocks并不支持输出其xrc格式, 我猜是wx本身就没有解析wxAui的xrc格式.像wxAuiToolBar或其他wxToolBar, DB工具也不能独立输出xrc. 而只能写代码, 这个界面库还真是比较适合程序员使用. 界面左边想做一个文件列表(composer 中列出shader缩率图),我使用的事 wxListCtrl,这个也不是符合要求. 希望支持竖直滚动条. 希望直到... 阅读全文
posted @ 2012-02-05 23:28 柿子院 阅读(1250) 评论(2) 推荐(0) 编辑
摘要: 今天看到一篇好文章, 试了几个办法想转过来,效果太差. 结果直接复制图片,但图片上传也有空间限制!!!好麻烦,不知大家有没有什么好办法? 是不是终极办法是把其网页源代码剪切过来? 回来两天了,应该写Shader Compiler的, 怪自己太懒了! 刚在这里转了一圈, 找了找hdr的资料, 看到很多写的很好但在2007年左右就不在写博客了,为什么. 这里有网摘的快捷方式,但摘过来就一个连接和标题,要是能像googleReader可以折叠打开看就好了.难道为了支持原创? 阅读全文
posted @ 2012-01-29 23:15 柿子院 阅读(235) 评论(2) 推荐(0) 编辑
摘要: 本文来源于ZwqXinhttp://www.zwqxin.com/原文地址:http://www.zwqxin.com/archives/shaderglsl/review-high-dynamic-range.html 阅读全文
posted @ 2012-01-29 22:56 柿子院 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 最近想做 Shader Editor, 一方面因为现有的工具不好使。 Nv的 Shader Composer系列,我挺喜欢用Composer 1.8的, 但他场景不支持一个一个的加载多个物体,移动旋转物体也不方便等问题。Composer2.51怎么用也不顺手。ATI的Render Monkey那是为美术做的编辑器。实话说最主要的原因是想练练手。 先从基础开始吧,我在这个博客(1)上找到了灵感。先做一个Shader编译器,功能如下: 1. 按照编译参数编译指定Shader 2. 可以查看Shader编译后的汇编语句和效率 3. 加载编译后的Shader,可以看到反汇编内容... 阅读全文
posted @ 2012-01-21 17:34 柿子院 阅读(2219) 评论(4) 推荐(2) 编辑
摘要: 留个言 阅读全文
posted @ 2012-01-08 14:55 柿子院 阅读(135) 评论(1) 推荐(0) 编辑