fxruby 1.6.41-x86-mingw32 → 1.6.45-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/.yardopts +1 -1
- data/Gemfile +2 -3
- data/History.md +26 -0
- data/README.rdoc +10 -5
- data/Rakefile +16 -5
- data/appveyor.yml +8 -7
- data/docs/Fox/Canvas/CanvasError.html +124 -0
- data/docs/Fox/Canvas/CircleShape.html +477 -0
- data/docs/Fox/Canvas/ImageShape.html +477 -0
- data/docs/Fox/Canvas/LineShape.html +1005 -0
- data/docs/Fox/Canvas/PolygonShape.html +145 -0
- data/docs/Fox/Canvas/RectangleShape.html +439 -0
- data/docs/Fox/Canvas/SelectionPolicy.html +352 -0
- data/docs/Fox/Canvas/Shape.html +1955 -0
- data/docs/Fox/Canvas/ShapeCanvas.html +2031 -0
- data/docs/Fox/Canvas/ShapeGroup.html +527 -0
- data/docs/Fox/Canvas/SingleSelectionPolicy.html +291 -0
- data/docs/Fox/Canvas/TextShape.html +609 -0
- data/docs/Fox/Canvas.html +141 -0
- data/docs/Fox/FTNonModal.html +550 -0
- data/docs/Fox/FX4Splitter.html +1336 -0
- data/docs/Fox/FX7Segment.html +1010 -0
- data/docs/Fox/FXAccelTable.html +715 -0
- data/docs/Fox/FXApp.html +7998 -0
- data/docs/Fox/FXArc.html +562 -0
- data/docs/Fox/FXArrowButton.html +865 -0
- data/docs/Fox/FXBMPIcon.html +450 -0
- data/docs/Fox/FXBMPImage.html +434 -0
- data/docs/Fox/FXBitmap.html +1362 -0
- data/docs/Fox/FXBitmapFrame.html +595 -0
- data/docs/Fox/FXBitmapView.html +1451 -0
- data/docs/Fox/FXButton.html +534 -0
- data/docs/Fox/FXCURCursor.html +261 -0
- data/docs/Fox/FXCalendar.html +880 -0
- data/docs/Fox/FXCanvas.html +311 -0
- data/docs/Fox/FXCheckButton.html +949 -0
- data/docs/Fox/FXChoiceBox.html +472 -0
- data/docs/Fox/FXColor.html +1519 -0
- data/docs/Fox/FXColorBar.html +759 -0
- data/docs/Fox/FXColorDialog.html +591 -0
- data/docs/Fox/FXColorItem.html +323 -0
- data/docs/Fox/FXColorList.html +712 -0
- data/docs/Fox/FXColorRing.html +817 -0
- data/docs/Fox/FXColorSelector.html +796 -0
- data/docs/Fox/FXColorWell.html +850 -0
- data/docs/Fox/FXColorWheel.html +770 -0
- data/docs/Fox/FXComboBox.html +2939 -0
- data/docs/Fox/FXComboTableItem.html +544 -0
- data/docs/Fox/FXCommand.html +526 -0
- data/docs/Fox/FXComposite.html +433 -0
- data/docs/Fox/FXCursor.html +779 -0
- data/docs/Fox/FXDC.html +5231 -0
- data/docs/Fox/FXDCPrint.html +696 -0
- data/docs/Fox/FXDCWindow.html +358 -0
- data/docs/Fox/FXDataTarget.html +573 -0
- data/docs/Fox/FXDebugTarget.html +305 -0
- data/docs/Fox/FXDelegator.html +305 -0
- data/docs/Fox/FXDial.html +1133 -0
- data/docs/Fox/FXDialogBox.html +413 -0
- data/docs/Fox/FXDict.html +1063 -0
- data/docs/Fox/FXDirBox.html +752 -0
- data/docs/Fox/FXDirDialog.html +914 -0
- data/docs/Fox/FXDirItem.html +989 -0
- data/docs/Fox/FXDirList.html +1554 -0
- data/docs/Fox/FXDirSelector.html +995 -0
- data/docs/Fox/FXDockBar.html +1451 -0
- data/docs/Fox/FXDockHandler.html +468 -0
- data/docs/Fox/FXDockSite.html +678 -0
- data/docs/Fox/FXDockTitle.html +606 -0
- data/docs/Fox/FXDocument.html +536 -0
- data/docs/Fox/FXDragCorner.html +440 -0
- data/docs/Fox/FXDrawable.html +478 -0
- data/docs/Fox/FXDriveBox.html +746 -0
- data/docs/Fox/FXEvent.html +1736 -0
- data/docs/Fox/FXExtentd.html +1374 -0
- data/docs/Fox/FXExtentf.html +1374 -0
- data/docs/Fox/FXFileAssoc.html +850 -0
- data/docs/Fox/FXFileDialog.html +2688 -0
- data/docs/Fox/FXFileDict.html +1058 -0
- data/docs/Fox/FXFileItem.html +1141 -0
- data/docs/Fox/FXFileList.html +2259 -0
- data/docs/Fox/FXFileSelector.html +2529 -0
- data/docs/Fox/FXFileStream.html +503 -0
- data/docs/Fox/FXFoldingItem.html +2822 -0
- data/docs/Fox/FXFoldingList.html +5189 -0
- data/docs/Fox/FXFont.html +2998 -0
- data/docs/Fox/FXFontDesc.html +710 -0
- data/docs/Fox/FXFontDialog.html +420 -0
- data/docs/Fox/FXFontSelector.html +576 -0
- data/docs/Fox/FXFrame.html +1012 -0
- data/docs/Fox/FXGIFCursor.html +337 -0
- data/docs/Fox/FXGIFIcon.html +450 -0
- data/docs/Fox/FXGIFImage.html +434 -0
- data/docs/Fox/FXGLCanvas.html +700 -0
- data/docs/Fox/FXGLCone.html +785 -0
- data/docs/Fox/FXGLContext.html +649 -0
- data/docs/Fox/FXGLCube.html +703 -0
- data/docs/Fox/FXGLCylinder.html +791 -0
- data/docs/Fox/FXGLGroup.html +1385 -0
- data/docs/Fox/FXGLLine.html +653 -0
- data/docs/Fox/FXGLObject.html +759 -0
- data/docs/Fox/FXGLPoint.html +561 -0
- data/docs/Fox/FXGLShape.html +714 -0
- data/docs/Fox/FXGLSphere.html +626 -0
- data/docs/Fox/FXGLViewer.html +3506 -0
- data/docs/Fox/FXGLVisual.html +2147 -0
- data/docs/Fox/FXGradient.html +562 -0
- data/docs/Fox/FXGradientBar.html +2479 -0
- data/docs/Fox/FXGroupBox.html +688 -0
- data/docs/Fox/FXHeader.html +3040 -0
- data/docs/Fox/FXHeaderItem.html +1353 -0
- data/docs/Fox/FXHiliteStyle.html +804 -0
- data/docs/Fox/FXHorizontalFrame.html +359 -0
- data/docs/Fox/FXHorizontalSeparator.html +349 -0
- data/docs/Fox/FXICOIcon.html +450 -0
- data/docs/Fox/FXICOImage.html +434 -0
- data/docs/Fox/FXIcon.html +384 -0
- data/docs/Fox/FXIconDict.html +752 -0
- data/docs/Fox/FXIconItem.html +1518 -0
- data/docs/Fox/FXIconList.html +4676 -0
- data/docs/Fox/FXIconSource.html +963 -0
- data/docs/Fox/FXId.html +712 -0
- data/docs/Fox/FXImage.html +2328 -0
- data/docs/Fox/FXImageFrame.html +489 -0
- data/docs/Fox/FXImageView.html +504 -0
- data/docs/Fox/FXInputDialog.html +894 -0
- data/docs/Fox/FXIrb.html +942 -0
- data/docs/Fox/FXJPGIcon.html +607 -0
- data/docs/Fox/FXJPGImage.html +591 -0
- data/docs/Fox/FXKnob.html +1048 -0
- data/docs/Fox/FXLabel.html +1013 -0
- data/docs/Fox/FXLight.html +920 -0
- data/docs/Fox/FXList.html +3717 -0
- data/docs/Fox/FXListBox.html +2518 -0
- data/docs/Fox/FXListItem.html +1459 -0
- data/docs/Fox/FXMDIChild.html +2175 -0
- data/docs/Fox/FXMDIClient.html +781 -0
- data/docs/Fox/FXMDIDeleteButton.html +334 -0
- data/docs/Fox/FXMDIMaximizeButton.html +334 -0
- data/docs/Fox/FXMDIMenu.html +335 -0
- data/docs/Fox/FXMDIMinimizeButton.html +334 -0
- data/docs/Fox/FXMDIRestoreButton.html +334 -0
- data/docs/Fox/FXMDIWindowButton.html +334 -0
- data/docs/Fox/FXMainWindow.html +337 -0
- data/docs/Fox/FXMaterial.html +570 -0
- data/docs/Fox/FXMatrix.html +734 -0
- data/docs/Fox/FXMemoryBuffer.html +472 -0
- data/docs/Fox/FXMemoryStream.html +632 -0
- data/docs/Fox/FXMenuBar.html +347 -0
- data/docs/Fox/FXMenuButton.html +829 -0
- data/docs/Fox/FXMenuCaption.html +1080 -0
- data/docs/Fox/FXMenuCascade.html +388 -0
- data/docs/Fox/FXMenuCheck.html +721 -0
- data/docs/Fox/FXMenuCommand.html +400 -0
- data/docs/Fox/FXMenuPane.html +333 -0
- data/docs/Fox/FXMenuRadio.html +721 -0
- data/docs/Fox/FXMenuSeparator.html +440 -0
- data/docs/Fox/FXMenuTitle.html +405 -0
- data/docs/Fox/FXMessageBox.html +658 -0
- data/docs/Fox/FXObject.html +545 -0
- data/docs/Fox/FXOption.html +491 -0
- data/docs/Fox/FXOptionMenu.html +885 -0
- data/docs/Fox/FXPCXIcon.html +450 -0
- data/docs/Fox/FXPCXImage.html +434 -0
- data/docs/Fox/FXPNGIcon.html +524 -0
- data/docs/Fox/FXPNGImage.html +508 -0
- data/docs/Fox/FXPPMIcon.html +450 -0
- data/docs/Fox/FXPPMImage.html +373 -0
- data/docs/Fox/FXPSBounds.html +500 -0
- data/docs/Fox/FXPacker.html +1229 -0
- data/docs/Fox/FXPicker.html +345 -0
- data/docs/Fox/FXPopup.html +1099 -0
- data/docs/Fox/FXPrintDialog.html +485 -0
- data/docs/Fox/FXPrinter.html +1330 -0
- data/docs/Fox/FXProgressBar.html +1150 -0
- data/docs/Fox/FXProgressDialog.html +715 -0
- data/docs/Fox/FXPseudoKeyboard.html +428 -0
- data/docs/Fox/FXPseudoMouse.html +800 -0
- data/docs/Fox/FXPseudoTarget.html +472 -0
- data/docs/Fox/FXQuatd.html +1377 -0
- data/docs/Fox/FXQuatf.html +1392 -0
- data/docs/Fox/FXRGBIcon.html +450 -0
- data/docs/Fox/FXRGBImage.html +434 -0
- data/docs/Fox/FXRadioButton.html +885 -0
- data/docs/Fox/FXRanged.html +1522 -0
- data/docs/Fox/FXRangef.html +1522 -0
- data/docs/Fox/FXRealSlider.html +1187 -0
- data/docs/Fox/FXRealSpinner.html +2175 -0
- data/docs/Fox/FXRecentFiles.html +841 -0
- data/docs/Fox/FXRectangle.html +802 -0
- data/docs/Fox/FXRegion.html +841 -0
- data/docs/Fox/FXRegistry.html +682 -0
- data/docs/Fox/FXReplaceDialog.html +648 -0
- data/docs/Fox/FXRootWindow.html +312 -0
- data/docs/Fox/FXRuler.html +2000 -0
- data/docs/Fox/FXRulerView.html +3997 -0
- data/docs/Fox/FXScintilla.html +49117 -0
- data/docs/Fox/FXScrollArea.html +1363 -0
- data/docs/Fox/FXScrollBar.html +1019 -0
- data/docs/Fox/FXScrollCorner.html +290 -0
- data/docs/Fox/FXScrollPane.html +499 -0
- data/docs/Fox/FXScrollWindow.html +409 -0
- data/docs/Fox/FXSearchDialog.html +382 -0
- data/docs/Fox/FXSegment.html +422 -0
- data/docs/Fox/FXSeparator.html +402 -0
- data/docs/Fox/FXSettings.html +1861 -0
- data/docs/Fox/FXShell.html +233 -0
- data/docs/Fox/FXShutter.html +472 -0
- data/docs/Fox/FXShutterItem.html +669 -0
- data/docs/Fox/FXSize.html +592 -0
- data/docs/Fox/FXSlider.html +1129 -0
- data/docs/Fox/FXSphered.html +906 -0
- data/docs/Fox/FXSpheref.html +906 -0
- data/docs/Fox/FXSpinner.html +2102 -0
- data/docs/Fox/FXSplashScreen.html +497 -0
- data/docs/Fox/FXSplashWindow.html +494 -0
- data/docs/Fox/FXSplitter.html +643 -0
- data/docs/Fox/FXSpring.html +517 -0
- data/docs/Fox/FXStatusBar.html +593 -0
- data/docs/Fox/FXStatusLine.html +754 -0
- data/docs/Fox/FXStream.html +1372 -0
- data/docs/Fox/FXStreamAllocError.html +148 -0
- data/docs/Fox/FXStreamEndError.html +148 -0
- data/docs/Fox/FXStreamError.html +259 -0
- data/docs/Fox/FXStreamFailureError.html +148 -0
- data/docs/Fox/FXStreamFormatError.html +148 -0
- data/docs/Fox/FXStreamFullError.html +148 -0
- data/docs/Fox/FXStreamNoReadError.html +148 -0
- data/docs/Fox/FXStreamNoWriteError.html +148 -0
- data/docs/Fox/FXStreamUnknownError.html +148 -0
- data/docs/Fox/FXStringDict.html +552 -0
- data/docs/Fox/FXSwitcher.html +619 -0
- data/docs/Fox/FXTGAIcon.html +450 -0
- data/docs/Fox/FXTGAImage.html +434 -0
- data/docs/Fox/FXTIFIcon.html +604 -0
- data/docs/Fox/FXTIFImage.html +588 -0
- data/docs/Fox/FXTabBar.html +644 -0
- data/docs/Fox/FXTabBook.html +373 -0
- data/docs/Fox/FXTabItem.html +478 -0
- data/docs/Fox/FXTable.html +10107 -0
- data/docs/Fox/FXTableItem.html +2195 -0
- data/docs/Fox/FXTablePos.html +360 -0
- data/docs/Fox/FXTableRange.html +360 -0
- data/docs/Fox/FXText.html +6870 -0
- data/docs/Fox/FXTextChange.html +492 -0
- data/docs/Fox/FXTextField.html +2016 -0
- data/docs/Fox/FXToggleButton.html +844 -0
- data/docs/Fox/FXToolBar.html +452 -0
- data/docs/Fox/FXToolBarGrip.html +584 -0
- data/docs/Fox/FXToolBarShell.html +788 -0
- data/docs/Fox/FXToolBarTab.html +729 -0
- data/docs/Fox/FXToolTip.html +761 -0
- data/docs/Fox/FXTopWindow.html +1716 -0
- data/docs/Fox/FXTranslator.html +481 -0
- data/docs/Fox/FXTreeItem.html +2813 -0
- data/docs/Fox/FXTreeList.html +5095 -0
- data/docs/Fox/FXTreeListBox.html +3080 -0
- data/docs/Fox/FXTriStateButton.html +681 -0
- data/docs/Fox/FXUndoList.html +2560 -0
- data/docs/Fox/FXVec2d.html +1450 -0
- data/docs/Fox/FXVec2f.html +1442 -0
- data/docs/Fox/FXVec3d.html +1649 -0
- data/docs/Fox/FXVec3f.html +1649 -0
- data/docs/Fox/FXVec4d.html +1858 -0
- data/docs/Fox/FXVec4f.html +1858 -0
- data/docs/Fox/FXVerticalFrame.html +359 -0
- data/docs/Fox/FXVerticalSeparator.html +349 -0
- data/docs/Fox/FXViewport.html +780 -0
- data/docs/Fox/FXVisual.html +1023 -0
- data/docs/Fox/FXWindow.html +9948 -0
- data/docs/Fox/FXWizard.html +1052 -0
- data/docs/Fox/FXXBMIcon.html +453 -0
- data/docs/Fox/FXXBMImage.html +437 -0
- data/docs/Fox/FXXPMIcon.html +450 -0
- data/docs/Fox/FXXPMImage.html +434 -0
- data/docs/Fox/NotifyHeader.html +286 -0
- data/docs/Fox/SCNotification.html +1438 -0
- data/docs/Fox/TextRange.html +281 -0
- data/docs/Fox.html +11184 -0
- data/docs/IRB.html +204 -0
- data/docs/Responder.html +693 -0
- data/docs/Responder2.html +225 -0
- data/docs/_index.html +2101 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +496 -0
- data/docs/file.History.html +869 -0
- data/docs/file.README.html +104 -0
- data/docs/file_list.html +66 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +614 -0
- data/docs/js/app.js +314 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +31043 -0
- data/docs/top-level-namespace.html +214 -0
- data/examples/canvasdemo.rb +5 -1
- data/examples/gltest.rb +162 -106
- data/examples/glviewer.rb +12 -8
- data/ext/fox16_c/core_wrap.cpp +117 -115
- data/ext/fox16_c/dc_wrap.cpp +82 -60
- data/ext/fox16_c/dialogs_wrap.cpp +87 -67
- data/ext/fox16_c/extconf.rb +12 -12
- data/ext/fox16_c/frames_wrap.cpp +101 -75
- data/ext/fox16_c/fx3d_wrap.cpp +258 -302
- data/ext/fox16_c/iconlist_wrap.cpp +70 -52
- data/ext/fox16_c/icons_wrap.cpp +75 -55
- data/ext/fox16_c/image_wrap.cpp +75 -57
- data/ext/fox16_c/label_wrap.cpp +78 -60
- data/ext/fox16_c/layout_wrap.cpp +83 -65
- data/ext/fox16_c/list_wrap.cpp +70 -52
- data/ext/fox16_c/mdi_wrap.cpp +76 -58
- data/ext/fox16_c/menu_wrap.cpp +78 -60
- data/ext/fox16_c/scintilla_wrap.cpp +85 -61
- data/ext/fox16_c/swigruby.h +64 -46
- data/ext/fox16_c/table_wrap.cpp +80 -58
- data/ext/fox16_c/text_wrap.cpp +75 -55
- data/ext/fox16_c/treelist_wrap.cpp +71 -53
- data/ext/fox16_c/ui_wrap.cpp +101 -81
- data/fxruby.gemspec +1 -1
- data/lib/2.4/fox16_c.so +0 -0
- data/lib/2.5/fox16_c.so +0 -0
- data/lib/2.6/fox16_c.so +0 -0
- data/lib/2.7/fox16_c.so +0 -0
- data/lib/3.0/fox16_c.so +0 -0
- data/lib/3.1/fox16_c.so +0 -0
- data/lib/fox16/aliases.rb +0 -0
- data/lib/fox16/bitmapview.rb +0 -0
- data/lib/fox16/calendar.rb +0 -0
- data/lib/fox16/canvas.rb +76 -45
- data/lib/fox16/chore.rb +0 -0
- data/lib/fox16/colors.rb +0 -0
- data/lib/fox16/core.rb +0 -0
- data/lib/fox16/dict.rb +0 -0
- data/lib/fox16/glgroup.rb +5 -5
- data/lib/fox16/glshapes.rb +111 -99
- data/lib/fox16/input.rb +0 -0
- data/lib/fox16/irb.rb +0 -0
- data/lib/fox16/iterators.rb +0 -0
- data/lib/fox16/keys.rb +0 -0
- data/lib/fox16/missingdep.rb +0 -0
- data/lib/fox16/pseudokeyboard.rb +0 -0
- data/lib/fox16/pseudomouse.rb +0 -0
- data/lib/fox16/responder.rb +0 -0
- data/lib/fox16/responder2.rb +0 -0
- data/lib/fox16/scintilla.rb +0 -0
- data/lib/fox16/settings.rb +0 -0
- data/lib/fox16/signal.rb +0 -0
- data/lib/fox16/timeout.rb +0 -0
- data/lib/fox16/tkcompat.rb +0 -0
- data/lib/fox16/undolist.rb +0 -0
- data/lib/fox16/version.rb +1 -1
- data/lib/fox16.rb +2 -4
- data/ports/x86-mingw32/bin/libFOX-1.6-0.dll +0 -0
- data/ports/x86-mingw32/bin/libfxscintilla-20.dll +0 -0
- data/ports/x86-mingw32/bin/libgcc_s_sjlj-1.dll +0 -0
- data/ports/x86-mingw32/bin/libjpeg-62.dll +0 -0
- data/ports/x86-mingw32/bin/libpng16-16.dll +0 -0
- data/ports/x86-mingw32/bin/libstdc++-6.dll +0 -0
- data/ports/x86-mingw32/bin/libtiff-5.dll +0 -0
- data/ports/x86-mingw32/bin/libwinpthread-1.dll +0 -0
- data/ports/x86-mingw32/bin/zlib1.dll +0 -0
- metadata +311 -20
- data/lib/2.2/fox16_c.so +0 -0
- data/lib/2.3/fox16_c.so +0 -0
- data/ports/i686-w64-mingw32/bin/libFOX-1.6-0.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libfxscintilla-20.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libgcc_s_sjlj-1.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libjpeg-62.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libpng16-16.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libstdc++-6.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libtiff-5.dll +0 -0
- data/ports/i686-w64-mingw32/bin/libwinpthread-1.dll +0 -0
- data/ports/i686-w64-mingw32/bin/zlib1.dll +0 -0
data/examples/canvasdemo.rb
CHANGED
@@ -52,6 +52,8 @@ class CanvasDemo < FXMainWindow
|
|
52
52
|
FXMenuTitle.new(menu_bar, "&Edit", nil, edit_menu)
|
53
53
|
FXMenuTitle.new(menu_bar, "&Help", nil, help_menu)
|
54
54
|
|
55
|
+
@birdImage = FXPNGImage.new(app, File.binread(File.expand_path("../icons/dippy.png", __FILE__)))
|
56
|
+
|
55
57
|
# Status bar
|
56
58
|
FXStatusBar.new(self,
|
57
59
|
LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|STATUSBAR_WITH_DRAGCORNER)
|
@@ -70,12 +72,14 @@ class CanvasDemo < FXMainWindow
|
|
70
72
|
scene.addShape(CircleShape.new(50, 50, 20))
|
71
73
|
scene.addShape(LineShape.new(10, 10, 70, 70))
|
72
74
|
scene.addShape(RectangleShape.new(90, 90, 30, 40))
|
73
|
-
scene.addShape(TextShape.new(
|
75
|
+
scene.addShape(TextShape.new(100, 40, 50, 15, "Hello g!"))
|
76
|
+
scene.addShape(ImageShape.new(160, 5, @birdImage ))
|
74
77
|
scene
|
75
78
|
end
|
76
79
|
|
77
80
|
def create
|
78
81
|
super
|
82
|
+
@birdImage.create
|
79
83
|
show(PLACEMENT_SCREEN)
|
80
84
|
end
|
81
85
|
end
|
data/examples/gltest.rb
CHANGED
@@ -3,73 +3,127 @@
|
|
3
3
|
require 'fox16'
|
4
4
|
begin
|
5
5
|
require 'opengl'
|
6
|
-
require 'glu'
|
7
6
|
rescue LoadError
|
8
7
|
require 'fox16/missingdep'
|
9
8
|
MSG = <<EOM
|
10
|
-
Sorry, this example depends on the opengl gems. Please execute:
|
11
|
-
gem install opengl
|
9
|
+
Sorry, this example depends on the opengl-bindings gems. Please execute:
|
10
|
+
gem install opengl-bindings
|
12
11
|
EOM
|
13
12
|
missingDependency(MSG)
|
14
13
|
end
|
15
14
|
|
16
15
|
|
17
|
-
include Fox
|
18
16
|
|
19
|
-
class GLTestWindow < FXMainWindow
|
17
|
+
class GLTestWindow < Fox::FXMainWindow
|
18
|
+
include Fox
|
19
|
+
include OpenGL
|
20
20
|
|
21
21
|
# How often our timer will fire (in milliseconds)
|
22
22
|
TIMER_INTERVAL = 100
|
23
23
|
|
24
24
|
# Draws a simple box using the given corners
|
25
25
|
def drawBox(xmin, ymin, zmin, xmax, ymax, zmax)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
26
|
+
glBegin(GL_TRIANGLE_STRIP)
|
27
|
+
glNormal3d(0.0, 0.0, -1.0)
|
28
|
+
glVertex3d(xmin, ymin, zmin)
|
29
|
+
glVertex3d(xmin, ymax, zmin)
|
30
|
+
glVertex3d(xmax, ymin, zmin)
|
31
|
+
glVertex3d(xmax, ymax, zmin)
|
32
|
+
glEnd()
|
33
|
+
|
34
|
+
glBegin(GL_TRIANGLE_STRIP)
|
35
|
+
glNormal3d(1.0, 0.0, 0.0)
|
36
|
+
glVertex3d(xmax, ymin, zmin)
|
37
|
+
glVertex3d(xmax, ymax, zmin)
|
38
|
+
glVertex3d(xmax, ymin, zmax)
|
39
|
+
glVertex3d(xmax, ymax, zmax)
|
40
|
+
glEnd()
|
41
|
+
|
42
|
+
glBegin(GL_TRIANGLE_STRIP)
|
43
|
+
glNormal3d(0.0, 0.0, 1.0)
|
44
|
+
glVertex3d(xmax, ymin, zmax)
|
45
|
+
glVertex3d(xmax, ymax, zmax)
|
46
|
+
glVertex3d(xmin, ymin, zmax)
|
47
|
+
glVertex3d(xmin, ymax, zmax)
|
48
|
+
glEnd()
|
49
|
+
|
50
|
+
glBegin(GL_TRIANGLE_STRIP)
|
51
|
+
glNormal3d(-1.0, 0.0, 0.0)
|
52
|
+
glVertex3d(xmin, ymin, zmax)
|
53
|
+
glVertex3d(xmin, ymax, zmax)
|
54
|
+
glVertex3d(xmin, ymin, zmin)
|
55
|
+
glVertex3d(xmin, ymax, zmin)
|
56
|
+
glEnd()
|
57
|
+
|
58
|
+
glBegin(GL_TRIANGLE_STRIP)
|
59
|
+
glNormal3d(0.0, 1.0, 0.0)
|
60
|
+
glVertex3d(xmin, ymax, zmin)
|
61
|
+
glVertex3d(xmin, ymax, zmax)
|
62
|
+
glVertex3d(xmax, ymax, zmin)
|
63
|
+
glVertex3d(xmax, ymax, zmax)
|
64
|
+
glEnd()
|
65
|
+
|
66
|
+
glBegin(GL_TRIANGLE_STRIP)
|
67
|
+
glNormal3d(0.0, -1.0, 0.0)
|
68
|
+
glVertex3d(xmax, ymin, zmax)
|
69
|
+
glVertex3d(xmax, ymin, zmin)
|
70
|
+
glVertex3d(xmin, ymin, zmax)
|
71
|
+
glVertex3d(xmin, ymin, zmin)
|
72
|
+
glEnd()
|
73
|
+
end
|
74
|
+
|
75
|
+
def gluPerspective(fovY, aspect, zNear, zFar )
|
76
|
+
fH = Math.tan( fovY / 360 * Math::PI ) * zNear;
|
77
|
+
fW = fH * aspect;
|
78
|
+
|
79
|
+
glFrustum( -fW, fW, -fH, fH, zNear, zFar );
|
80
|
+
end
|
81
|
+
|
82
|
+
# Define our own version of gluLookAt() to avoid dependency to deprecated GLU library
|
83
|
+
def gluLookAt(ex, ey, ez,
|
84
|
+
lx, ly, lz,
|
85
|
+
ux, uy, uz )
|
86
|
+
z0 = ex - lx
|
87
|
+
z1 = ey - ly
|
88
|
+
z2 = ez - lz
|
89
|
+
l = z0*z0+z1*z1+z2*z2
|
90
|
+
if l != 0 then
|
91
|
+
l = 1.0 / Math.sqrt(l)
|
92
|
+
z0 *= l
|
93
|
+
z1 *= l
|
94
|
+
z2 *= l
|
95
|
+
end
|
96
|
+
|
97
|
+
x0 = uy*z2-uz*z1
|
98
|
+
x1 = -ux*z2+uz*z0
|
99
|
+
x2 = ux*z1-uy*z0
|
100
|
+
l = x0*x0+x1*x1+x2*x2
|
101
|
+
if l != 0 then
|
102
|
+
l = 1.0 / Math.sqrt(l)
|
103
|
+
x0 *= l
|
104
|
+
x1 *= l
|
105
|
+
x2 *= l
|
106
|
+
end
|
107
|
+
|
108
|
+
y0 = z1*x2-z2*x1
|
109
|
+
y1 = -z0*x2+z2*x0
|
110
|
+
y2 = z0*x1-z1*x0
|
111
|
+
l = y0*y0+y1*y1+y2*y2
|
112
|
+
if l != 0 then
|
113
|
+
l = 1.0 / Math.sqrt(l)
|
114
|
+
y0 *= l
|
115
|
+
y1 *= l
|
116
|
+
y2 *= l
|
117
|
+
end
|
118
|
+
|
119
|
+
m4x4 = [
|
120
|
+
x0,y0,z0,0,
|
121
|
+
x1,y1,z1,0,
|
122
|
+
x2,y2,z2,0,
|
123
|
+
0, 0, 0,1,
|
124
|
+
].pack("d*")
|
125
|
+
glMultMatrixd m4x4
|
126
|
+
glTranslated -ex,-ey,-ez
|
73
127
|
end
|
74
128
|
|
75
129
|
# Draw the GL scene
|
@@ -87,80 +141,80 @@ class GLTestWindow < FXMainWindow
|
|
87
141
|
# Make context current
|
88
142
|
@glcanvas.makeCurrent()
|
89
143
|
|
90
|
-
|
144
|
+
glViewport(0, 0, @glcanvas.width, @glcanvas.height)
|
91
145
|
|
92
|
-
|
93
|
-
|
94
|
-
|
146
|
+
glClearColor(1.0, 1.0, 1.0, 1.0)
|
147
|
+
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
|
148
|
+
glEnable(GL_DEPTH_TEST)
|
95
149
|
|
96
|
-
|
150
|
+
glDisable(GL_DITHER)
|
97
151
|
|
98
|
-
|
99
|
-
|
100
|
-
|
152
|
+
glMatrixMode(GL_PROJECTION)
|
153
|
+
glLoadIdentity()
|
154
|
+
gluPerspective(30.0, aspect, 1.0, 100.0)
|
101
155
|
|
102
|
-
|
103
|
-
|
104
|
-
|
156
|
+
glMatrixMode(GL_MODELVIEW)
|
157
|
+
glLoadIdentity()
|
158
|
+
gluLookAt(5.0, 10.0, 15.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
|
105
159
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
160
|
+
glShadeModel(GL_SMOOTH)
|
161
|
+
glLightfv(GL_LIGHT0, GL_POSITION, lightPosition.pack("f*"))
|
162
|
+
glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient.pack("f*"))
|
163
|
+
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse.pack("f*"))
|
164
|
+
glEnable(GL_LIGHT0)
|
165
|
+
glEnable(GL_LIGHTING)
|
112
166
|
|
113
|
-
|
114
|
-
|
167
|
+
glMaterialfv(GL_FRONT, GL_AMBIENT, blueMaterial.pack("f*"))
|
168
|
+
glMaterialfv(GL_FRONT, GL_DIFFUSE, blueMaterial.pack("f*"))
|
115
169
|
|
116
|
-
|
117
|
-
|
170
|
+
glPushMatrix()
|
171
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
118
172
|
drawBox(-1, -1, -1, 1, 1, 1)
|
119
173
|
|
120
|
-
|
121
|
-
|
174
|
+
glMaterialfv(GL_FRONT, GL_AMBIENT, redMaterial.pack("f*"))
|
175
|
+
glMaterialfv(GL_FRONT, GL_DIFFUSE, redMaterial.pack("f*"))
|
122
176
|
|
123
|
-
|
124
|
-
|
125
|
-
|
177
|
+
glPushMatrix()
|
178
|
+
glTranslated(0.0, 1.75, 0.0)
|
179
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
126
180
|
drawBox(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5)
|
127
|
-
|
181
|
+
glPopMatrix()
|
128
182
|
|
129
|
-
|
130
|
-
|
131
|
-
|
183
|
+
glPushMatrix()
|
184
|
+
glTranslated(0.0, -1.75, 0.0)
|
185
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
132
186
|
drawBox(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5)
|
133
|
-
|
187
|
+
glPopMatrix()
|
134
188
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
189
|
+
glPushMatrix()
|
190
|
+
glRotated(90.0, 1.0, 0.0, 0.0)
|
191
|
+
glTranslated(0.0, 1.75, 0.0)
|
192
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
139
193
|
drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
|
140
|
-
|
194
|
+
glPopMatrix()
|
141
195
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
196
|
+
glPushMatrix()
|
197
|
+
glRotated(90.0, -1.0, 0.0, 0.0)
|
198
|
+
glTranslated(0.0,1.75,0.0)
|
199
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
146
200
|
drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
|
147
|
-
|
201
|
+
glPopMatrix()
|
148
202
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
203
|
+
glPushMatrix()
|
204
|
+
glRotated(90.0, 0.0, 0.0, 1.0)
|
205
|
+
glTranslated(0.0,1.75,0.0)
|
206
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
153
207
|
drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
|
154
|
-
|
208
|
+
glPopMatrix()
|
155
209
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
210
|
+
glPushMatrix()
|
211
|
+
glRotated(90.0, 0.0, 0.0, -1.0)
|
212
|
+
glTranslated(0.0,1.75,0.0)
|
213
|
+
glRotated(@angle, 0.0, 1.0, 0.0)
|
160
214
|
drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
|
161
|
-
|
215
|
+
glPopMatrix()
|
162
216
|
|
163
|
-
|
217
|
+
glPopMatrix()
|
164
218
|
|
165
219
|
# Swap if it is double-buffered
|
166
220
|
if @glvisual.isDoubleBuffer
|
@@ -175,6 +229,8 @@ class GLTestWindow < FXMainWindow
|
|
175
229
|
# Invoke the base class initializer
|
176
230
|
super(app, "OpenGL Test Application", :opts => DECOR_ALL, :width => 800, :height => 600)
|
177
231
|
|
232
|
+
OpenGL.load_lib
|
233
|
+
|
178
234
|
# Construct the main window elements
|
179
235
|
frame = FXHorizontalFrame.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
180
236
|
frame.padLeft, frame.padRight = 0, 0
|
@@ -207,7 +263,7 @@ class GLTestWindow < FXMainWindow
|
|
207
263
|
@glcanvas.connect(SEL_PAINT) { drawScene }
|
208
264
|
@glcanvas.connect(SEL_CONFIGURE) do
|
209
265
|
if @glcanvas.makeCurrent
|
210
|
-
|
266
|
+
glViewport(0, 0, @glcanvas.width, @glcanvas.height)
|
211
267
|
@glcanvas.makeNonCurrent
|
212
268
|
end
|
213
269
|
end
|
@@ -310,7 +366,7 @@ end
|
|
310
366
|
|
311
367
|
if __FILE__ == $0
|
312
368
|
# Construct the application
|
313
|
-
application = FXApp.new("GLTest", "FoxTest")
|
369
|
+
application = Fox::FXApp.new("GLTest", "FoxTest")
|
314
370
|
|
315
371
|
# Construct the main window
|
316
372
|
GLTestWindow.new(application)
|
data/examples/glviewer.rb
CHANGED
@@ -7,16 +7,15 @@ begin
|
|
7
7
|
rescue LoadError
|
8
8
|
require 'fox16/missingdep'
|
9
9
|
MSG = <<EOM
|
10
|
-
Sorry, this example depends on the
|
11
|
-
|
12
|
-
download site.
|
10
|
+
Sorry, this example depends on the opengl-bindings gems. Please execute:
|
11
|
+
gem install opengl-bindings
|
13
12
|
EOM
|
14
13
|
missingDependency(MSG)
|
15
14
|
end
|
16
15
|
|
17
|
-
|
16
|
+
class TabBook < Fox::FXTabBook
|
17
|
+
include Fox
|
18
18
|
|
19
|
-
class TabBook < FXTabBook
|
20
19
|
def createAnglesPage(panels, mdiclient)
|
21
20
|
# Angles tab
|
22
21
|
FXTabItem.new(panels,
|
@@ -143,8 +142,8 @@ class TabBook < FXTabBook
|
|
143
142
|
end
|
144
143
|
end
|
145
144
|
|
146
|
-
class GLViewWindow < FXMainWindow
|
147
|
-
|
145
|
+
class GLViewWindow < Fox::FXMainWindow
|
146
|
+
include Fox
|
148
147
|
include Responder
|
149
148
|
|
150
149
|
ID_QUERY_MODE = FXMainWindow::ID_LAST
|
@@ -162,6 +161,9 @@ class GLViewWindow < FXMainWindow
|
|
162
161
|
# Initialize base class first
|
163
162
|
super(app, "OpenGL Example Application", :opts => DECOR_ALL, :width => 800, :height => 600)
|
164
163
|
|
164
|
+
OpenGL.load_lib
|
165
|
+
GLU.load_lib
|
166
|
+
|
165
167
|
# Define message identifiers for this class
|
166
168
|
|
167
169
|
# Set up the message map
|
@@ -481,6 +483,8 @@ class GLViewWindow < FXMainWindow
|
|
481
483
|
sphere = FXGLSphere.new(1.0, 1.0, 0.0, 0.5)
|
482
484
|
sphere2 = FXGLSphere.new(0.0, 0.0, 0.0, 0.8)
|
483
485
|
sphere.tipText = "Sphere"
|
486
|
+
gp2.append(FXGLLine.new(-2.0, 0.0, 0.0, -1.0, 1.0, 1.0))
|
487
|
+
gp2.append(FXGLPoint.new(-2.0, 0.0, 0.0))
|
484
488
|
gp2.append(FXGLCube.new(-1.0, 0.0, 0.0, 1.0, 1.0, 1.0))
|
485
489
|
gp2.append(FXGLCube.new( 1.0, 0.0, 0.0, 1.0, 1.0, 1.0))
|
486
490
|
gp2.append(FXGLCube.new( 0.0,-1.0, 0.0, 1.0, 1.0, 1.0))
|
@@ -556,7 +560,7 @@ end
|
|
556
560
|
|
557
561
|
if __FILE__ == $0
|
558
562
|
# Make application
|
559
|
-
application = FXApp.new("GLViewer", "FoxTest")
|
563
|
+
application = Fox::FXApp.new("GLViewer", "FoxTest")
|
560
564
|
application.threadsEnabled = false
|
561
565
|
|
562
566
|
# Make window
|