Welcome to the GLUI User Interface Library, v2.3!
March 22, 2005
-------------------------------------------------
This distribution contains the latest community-maintained fork of the
GLUI Library. It is based on the GLUI v2.1 beta version from Paul
Rademacher (http://www.cs.unc.edu/~rademach/glui/) plus the
compatibility changes made by Nigel Stewart in his "GLUI v2.2"
(http://www.nigels.com/glt/glui) In accordance with the LGPL under
which the library is released (according to Paul's web page at least),
these changes are available to everyone in the community.
WARNING: This version (2.3) introduces some incompatible changes with
previous versions!!
CHANGES:
----------------------------------
- GLUI_String is now a std::string
This is the main source of most incopatibilities, but I felt it was
a necessary change, because the previous usage of a fixed-sized
buffer was just too unsafe. I myself was bitten a few times passing
a char* buffer of insufficient size into GLUI as a live variable.
It is still possible to use a char buffer, but it is not recommended.
If you used GLUI_String before as a live var type, the easiest way
to get your code compiling again is to change those to "char
buf[300]". The better way, though, is to update your code to treat
it as a std::string.
For instance, if you used to pass mystr to functions that take
'const char*', now use mystr.c_str() method, instead.
If you used strcpy(mystr, b) to set the value, now just do mystr=b.
If you used sprintf(mystr,...) to set the value, now do
glui_format_string(mystr,...).
If you used to clear the string with mystr[0]='\0', now just clear
it with mystr="".
----------------------------------
- Enhanced GLUI_EditText
Control keys can be used for navigation and control. The bindings
are bash-like: Ctrl-B for previous char, Ctrl-F for forward char, etc.
bindings. Also control keys that aren't bound to commands are
simply ignored, whereas before they would be inserted as invisible
characters.
----------------------------------
- Added GLUI_CommandLine class
This is a GLUI_EditText with a history mechanism.
----------------------------------
- New, more object oriented construction API.
Now instead of calling
glui->add_button_to_panel( panel, "my button", myid, mycallback );
you should just call the button constructor:
new GLUI_Button( panel, "my button", myid, mycallback );
And similarly to add it to a GLUI instead of a panel, rather than:
glui->add_button( glui, "my button", myid, mycallback );
just call the constructor with the GLUI as the first argument:
new GLUI_Button( glui, "my button", myid, mycallback );
The old scheme is now deprecated, but still works. The benefit of
this new scheme is that now the GLUI class doesn't have to know
about all the different types of GLUI_Controls that exist.
Previously GLUI had to both know about all the controls, and know
how to initialize them. Now the responsibility for initialization
belongs to the GLUI_Control subclasses themselves, where it
belongs. Additionally it means that you can create your own
GLUI_Control subclasses which will be on equal footing with the
built-in controls, whereas before any user-created controls would
always be "second-class citizens" since they would have to be
constructed differently from the built-ins.
----------------------------------
- Removed need for type-declaring arguments when argment type suffices.
This effects GLUI_Spinner and GLUI_EditText (and GLUI_CommandLine?).
For example, instead of calling
new GLUI_Spinner( glui, "myspin", GLUI_SPINNER_INT, &live_int_var );
you can just omit the GLUI_SPINNER_INT part, because the type of the
live_int_var tells the compiler which type you want.
new GLUI_Spinner( glui, "myspin", &live_int_var );
If you're not using a live, var, you can still use the
GLUI_SPINNER_INT type argument. See glui.h for all the new
constructor signatures. Note this only works with the new
construction API, not with the old "add_blah_to_panel" style of
API.
----------------------------------
- GLUI_Rotation uses your matrix live-variable now.
GLUI used to ignore the matrix in your live variable. This version
doesn't ignore it, so you'll need to set it to the identity matrix
yourself if that's what you want it to start as. There could
probably be some improvements to this API, though.
----------------------------------
- Improvements to 'const' usage.
Most char*'s in GLUI functions used to be non-const even when the
functions did not modify the string. I changed everywhere
appropriate to use const char* instead.
----------------------------------
- Updated license info in the headers
Paul's web page says that GLUI is LGPL, but that wasn't declared in
the code itself. I've modified all the headers with the standard
LGPL notice.
----------------------------------
- Updated examples for the API changes
----------------------------------
- Created project files for Visual Studio .NET (MSVC7.1)
That's about it. Enjoy!
If you find yourself with too much time on your hands, the things I
think would be most useful for future improvements to GLUI would be:
1. The GLUI_TextBox and GLUI_Tree definitely need some work, still.
2. Clipboard integration under Windows/X-Win. I have some code that
works on Win32 that I once integrated with GLUI, but I lost that
version somewhere. I still have the Win32 clipboard code, though
if anyone wants to work on integrating it. I have some X-Win
clipboard code, too, but I never got it working quite right.
3. Remove the dependency on GLUT, making the connection with window
system APIs into a more plug-in/adapter modular design.
So e.g. if you want to use GLUT, you'd link with the GLUI lib and a
GLUI_GLUT lib, and call one extra GLUI_glut_init() function or
something.
Definitly consider submitting a patch if you've made some nice improvements
to GLUI. Hopefully being an LGPL sourceforge project will attract some new
interest to the GLUI project.
Bill Baxter
baxter
at
cs unc edu
=================================================
JOHN KEW'S ADDITIONS (March 2005)
=================================================
Thanks to John Kew of Natural Solutions Inc.,
there are some new widgets. These are demonstrated in example6.cpp.
The new widgets are:
* GLUI_Scrollbar - A scrollbar slider widget
* GLUI_TextBox - A multi-line text widget
* GLUI_List - A static choice list
* GLUI_FileBrowser - A simple filebrowser based on GLUI_List
* GLUI_Tree - Hierarchical tree widget
* GLUI_TreePanel - Manager for the tree widget
And one other change:
* GLUI_Rollout has optional embossed border
=================================================
PAUL'S ORIGINAL GLUI 2.0/2.1 README
=================================================
Welcome to the GLUI User Interface Library, v2.0 beta!
-------------------------------------------------
This distribution contains the full GLUI sources, as well as 5 example
programs. You'll find the full manual under "glui_manual.pdf". The
GLUI web page is at
http://www.cs.unc.edu/~rademach/glui
---------- Windows ----------
The directory 'msvc' contains a Visual C++ workspace entitled
'glui.dsw'. To recompile the library and examples, open this
workspace and run the menu command "Build:Batch Build:Build". The 3
executables will be in the 'bin' directory, and the library in the
'lib' directory.
To create a new Windows executable using GLUI, create a "Win32 Console
Application" in VC++, add the GLUI library (in 'msvc/lib/glui32.lib'),
and add the OpenGL libs:
glui32.lib glut32.lib glu32.lib opengl32.lib (Microso
没有合适的资源?快使用搜索试试~ 我知道了~
IOS应用源码之Box2DDemo.rar
共493个文件
h:114个
cpp:104个
o:93个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 187 浏览量
2022-06-22
07:29:51
上传
评论
收藏 4.99MB RAR 举报
温馨提示
IOS应用源码之Box2DDemo.rar
资源推荐
资源详情
资源评论
收起资源包目录
IOS应用源码之Box2DDemo.rar (493个子文件)
b2Island 72KB
b2PolygonShape 56KB
b2TimeOfImpact 21KB
docbook.bat 158B
Box2DDemo 400KB
Box2DDemo000644 1.08MB
freeglut_font_data.c 383KB
freeglut_main.c 57KB
freeglut_joystick.c 53KB
freeglut_stroke_mono_roman.c 47KB
freeglut_stroke_roman.c 47KB
freeglut_geometry.c 40KB
freeglut_window.c 32KB
freeglut_menu.c 32KB
freeglut_init.c 27KB
freeglut_state.c 21KB
freeglut_gamemode.c 18KB
freeglut_structure.c 18KB
freeglut_font.c 12KB
freeglut_callbacks.c 10KB
freeglut_cursor.c 10KB
freeglut_ext.c 7KB
freeglut_teapot.c 6KB
freeglut_misc.c 5KB
freeglut_display.c 3KB
freeglut_glutfont_definitions.c 3KB
freeglut_overlay.c 2KB
freeglut_videoresize.c 2KB
Engine.cbp 6KB
TestBed.cbp 5KB
FreeGLUT.cbp 4KB
GLUI.cbp 4KB
HelloWorld.cbp 1KB
API.chm 188KB
control 256KB
control 256KB
COPYING 1KB
glui.cpp 57KB
b2Polygon.cpp 49KB
algebra3.cpp 36KB
glui_edittext.cpp 34KB
glui_textbox.cpp 32KB
TriangleMesh.cpp 32KB
b2World.cpp 31KB
glui_control.cpp 31KB
b2BroadPhase.cpp 24KB
glui_scrollbar.cpp 24KB
b2ContactSolver.cpp 21KB
glui_bitmap_img_data.cpp 21KB
glui_spinner.cpp 18KB
glui_translation.cpp 16KB
BipedDef.cpp 16KB
b2PrismaticJoint.cpp 16KB
b2Island.cpp 15KB
b2PolygonShape.cpp 15KB
b2LineJoint.cpp 14KB
glui_list.cpp 13KB
b2PolyAndEdgeContact.cpp 13KB
glui_rotation.cpp 13KB
b2RevoluteJoint.cpp 12KB
b2PulleyJoint.cpp 11KB
glui_listbox.cpp 11KB
b2Distance.cpp 11KB
glui_treepanel.cpp 11KB
b2PairManager.cpp 10KB
Test.cpp 10KB
b2Body.cpp 10KB
glui_add_controls.cpp 10KB
Main.cpp 9KB
b2CollidePoly.cpp 9KB
glui_radio.cpp 9KB
glui_node.cpp 7KB
b2GearJoint.cpp 7KB
BroadPhaseTest.cpp 7KB
glui_rollout.cpp 7KB
glui_tree.cpp 6KB
glui_mouse_iaction.cpp 6KB
quaternion.cpp 6KB
b2ContactManager.cpp 6KB
b2DistanceJoint.cpp 6KB
arcball.cpp 6KB
b2EdgeAndCircleContact.cpp 6KB
Biped.cpp 5KB
Body.cpp 5KB
glui_commandline.cpp 5KB
Render.cpp 5KB
b2EdgeShape.cpp 5KB
b2CollideCircle.cpp 5KB
glui_panel.cpp 5KB
b2Contact.cpp 5KB
b2BlockAllocator.cpp 5KB
glui_bitmaps.cpp 5KB
glui_checkbox.cpp 5KB
glui_button.cpp 5KB
b2CircleShape.cpp 5KB
b2PolyAndCircleContact.cpp 5KB
b2PolyContact.cpp 5KB
b2MouseJoint.cpp 4KB
RevoluteJoint.cpp 4KB
b2Shape.cpp 4KB
共 493 条
- 1
- 2
- 3
- 4
- 5
资源评论
BryanDing
- 粉丝: 297
- 资源: 5587
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功