Difference between revisions of "Multi screen support"
 (→set Environment Variables)  | 
				 (→Eiffel Studio)  | 
				||
| Line 27: | Line 27: | ||
* https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Delivery into C:\Eiffel57\soft-arch\Delivery  | * https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Delivery into C:\Eiffel57\soft-arch\Delivery  | ||
* https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/free_add_ons into C:\Eiffel57\soft-arch\free_add_ons  | * https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/free_add_ons into C:\Eiffel57\soft-arch\free_add_ons  | ||
| + | |||
| + | === set Environment Variables ===  | ||
| + | |||
| + | {{block|set '''PATH'''<nowiki>=</nowiki>C:\Programme\Microsoft.NET\SDK\v2.0\Bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Programme\Microsoft Platform SDK\bin;C:\Programme\Microsoft Visual Studio 8\VC\bin;C:\Programme\Microsoft Visual Studio 8\Common7\IDE;C:\Programme\Microsoft Visual Studio 8\VC\vcpackages;C:\Programme\Microsoft Platform SDK\Bin;C:\Programme\Microsoft Visual Studio 8\VC\bin;'''%PATH%''';C:\cygwin\bin}}  | ||
| + | |||
| + | {{block|set '''INCLUDE'''<nowiki>=</nowiki>C:\Programme\Microsoft.NET\SDK\v2.0\include;C:\Programme\Microsoft Platform SDK\Include;C:\Programme\Microsoft Platform SDK\Include\crt;C:\Programme\Microsoft Platform SDK\Include\crt\sys;C:\Programme\Microsoft Platform SDK\Include\mfc;C:\Programme\Microsoft Platform SDK\Include\atl;C:\Programme\Microsoft Visual Studio 8\VC\include}}  | ||
| + | |||
| + | {{block|set '''LIB'''<nowiki>=</nowiki>C:\Programme\Microsoft.NET\SDK\v2.0\Lib;C:\Programme\Microsoft Platform SDK\Lib;C:\Programme\Microsoft Visual Studio 8\VC\lib;}}  | ||
| + | |||
| + | {{block|set '''ISE_EIFFEL'''<nowiki>=</nowiki>C:\Eiffel57\}}  | ||
| + | These last Variables I'm not sure are needed...  | ||
| + | {{block|set '''EIFFEL_SRC'''<nowiki>=</nowiki>C:\Eiffel57\soft-arch\}}  | ||
| + | {{block|set '''ISE_PLATFORM'''<nowiki>=</nowiki>windows}}  | ||
| + | {{block|set '''ISE_C_COMPILER'''<nowiki>=</nowiki>msc}}  | ||
| + | |||
| + | === Install needed Applications (see also directories above) ===  | ||
| + | * install MS Platform SDK, MS .NET Framework, .NET SDK  | ||
| + | * install cygwin  | ||
| + | * install Eiffel build  | ||
=== Install Gobo ===  | === Install Gobo ===  | ||
| Line 39: | Line 58: | ||
</pre>  | </pre>  | ||
| − | ===   | + | === Compile Libraries ===  | 
| + | * Preparation:  | ||
| + | rename C:\Eiffel57\soft-arch\C\CONFIGS\windows-msc-x86 to 'windows-msc-x86 old'  | ||
| + | download [http://origo.ethz.ch/pipermail/es-devel/attachments/20060424/e5afb9a9/windows-msc-x86-2005.obj windows-msc-x86-2005.obj] into C:\Eiffel57\soft-arch\C\CONFIGS\ and rename it to windows-msc-x86  | ||
| − | + | * Compilation:  | |
| + | ** Compiling run-time  | ||
| − | + | '''DOS'''  | |
| + | <pre>cd %EIFFEL_SRC%/C  | ||
| + | configure win32 m</pre>  | ||
| − | + | '''Bash'''  | |
| + | <pre>cd $EIFFEL_SRC/C  | ||
| + | ./configure.bat win32 m</pre>  | ||
| + | If you are using a 64Bit Machine change the win32 to win64  | ||
| − | + | ||
| − | + | On Windows 32 bits to clean up all the generated files you do:  | |
| − | + | '''DOS'''  | |
| − | + | <pre>configure clean</pre>  | |
| − | + | '''Bash'''  | |
| + | <pre>./configure.bat clean</pre>  | ||
| + | |||
| + | ** Compiling C code from libraries  | ||
| + | '''DOS'''  | ||
| + | <pre>cd %EIFFEL_SRC%/library/net/Clib  | ||
| + | make_msc.bat  | ||
| + | cd %EIFFEL_SRC%/library/vision2/Clib  | ||
| + | make_msc.bat  | ||
| + | cd %EIFFEL_SRC%/library/wel/Clib  | ||
| + | make_msc.bat</pre>  | ||
| + | '''Bash'''  | ||
| + | <pre>cd $EIFFEL_SRC/library/net/Clib  | ||
| + | ./make_msc.bat  | ||
| + | cd $EIFFEL_SRC/library/vision2/Clib  | ||
| + | ./make_msc.bat  | ||
| + | cd $EIFFEL_SRC/library/wel/Clib  | ||
| + | ./make_msc.bat</pre>  | ||
| + | |||
| + | ** Compiling C code from C_library  | ||
| + | '''DOS'''  | ||
| + | <pre>cd %EIFFEL_SRC%/C_library/zlib  | ||
| + | make_msc.bat  | ||
| + | cd %EIFFEL_SRC%/C_library/libpng  | ||
| + | make_msc.bat</pre>  | ||
| + | '''Bash'''  | ||
| + | <pre>cd $EIFFEL_SRC/C_library/zlib  | ||
| + | ./make_msc.bat  | ||
| + | cd $EIFFEL_SRC/C_library/libpng  | ||
| + | ./make_msc.bat</pre>  | ||
| + | |||
| + | |||
| + | ** Compiling C code from compiler  | ||
| + | '''DOS'''  | ||
| + | <pre>cd %EIFFEL_SRC%/Eiffel/library/cli_writer/Clib  | ||
| + | nmake</pre>  | ||
| + | '''Bash'''  | ||
| + | <pre>cd $EIFFEL_SRC/Eiffel/library/cli_writer/Clib  | ||
| + | nmake</pre>  | ||
| + | |||
| + | |||
| + | === Start Eiffel Studio ===  | ||
| + | You should be able now to create a vision2 project and compile it !!!  | ||
=Resources=  | =Resources=  | ||
Revision as of 04:33, 15 June 2006
Overview
The aim of this project is to enhance Vision with a support for multiple screens.
Eiffel Studio
- I'll give you here a step for step instruction at how I got a vision2 project to work under windows
 
Download
- build 59623 from cur Eiffel builds old Eiffel builds
 - If you don't already have it installed:
 
MS Platform SDK Microsoft .NET Framework Version 2.0 Redistributable Package (x86) .NET 2.0 SDK for x86
How I chose the Directories (just change everywhere I use them adequatly) =
- C:\Eiffel57\ - Eiffel instal directory
 - C:\Eiffel57\soft-arch\ - svn checkout
 - C:\Program Files\Microsoft.NET\ - Microsoft.NET Framework
 - C:\Program Files\Microsoft Platform SDK\ - Microsoft Platform SDK
 - C:\cygwin\ - Cygwin Installation
 
needed SVN checkout
- https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Src into C:\Eiffel57\soft-arch\
 - https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/Delivery into C:\Eiffel57\soft-arch\Delivery
 - https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/free_add_ons into C:\Eiffel57\soft-arch\free_add_ons
 
set Environment Variables
set PATH=C:\Programme\Microsoft.NET\SDK\v2.0\Bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Programme\Microsoft Platform SDK\bin;C:\Programme\Microsoft Visual Studio 8\VC\bin;C:\Programme\Microsoft Visual Studio 8\Common7\IDE;C:\Programme\Microsoft Visual Studio 8\VC\vcpackages;C:\Programme\Microsoft Platform SDK\Bin;C:\Programme\Microsoft Visual Studio 8\VC\bin;%PATH%;C:\cygwin\bin
set INCLUDE=C:\Programme\Microsoft.NET\SDK\v2.0\include;C:\Programme\Microsoft Platform SDK\Include;C:\Programme\Microsoft Platform SDK\Include\crt;C:\Programme\Microsoft Platform SDK\Include\crt\sys;C:\Programme\Microsoft Platform SDK\Include\mfc;C:\Programme\Microsoft Platform SDK\Include\atl;C:\Programme\Microsoft Visual Studio 8\VC\include
set LIB=C:\Programme\Microsoft.NET\SDK\v2.0\Lib;C:\Programme\Microsoft Platform SDK\Lib;C:\Programme\Microsoft Visual Studio 8\VC\lib;
set ISE_EIFFEL=C:\Eiffel57\
These last Variables I'm not sure are needed...
set EIFFEL_SRC=C:\Eiffel57\soft-arch\
set ISE_PLATFORM=windows
set ISE_C_COMPILER=msc
Install needed Applications (see also directories above)
- install MS Platform SDK, MS .NET Framework, .NET SDK
 - install cygwin
 - install Eiffel build
 
Install Gobo
DOS
cd %EIFFEL_SRC%\library tar xvfz %EIFFEL_SRC%\free_add_ons\gobo\gobo_34_win.tgz
Bash
cd $EIFFEL_SRC/library tar xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_win.tgz
Compile Libraries
- Preparation:
 
rename C:\Eiffel57\soft-arch\C\CONFIGS\windows-msc-x86 to 'windows-msc-x86 old' download windows-msc-x86-2005.obj into C:\Eiffel57\soft-arch\C\CONFIGS\ and rename it to windows-msc-x86
-  Compilation:
- Compiling run-time
 
 
DOS
cd %EIFFEL_SRC%/C configure win32 m
Bash
cd $EIFFEL_SRC/C ./configure.bat win32 m
If you are using a 64Bit Machine change the win32 to win64
On Windows 32 bits to clean up all the generated files you do:
DOS
configure clean
Bash
./configure.bat clean
- Compiling C code from libraries
 
DOS
cd %EIFFEL_SRC%/library/net/Clib make_msc.bat cd %EIFFEL_SRC%/library/vision2/Clib make_msc.bat cd %EIFFEL_SRC%/library/wel/Clib make_msc.bat
Bash
cd $EIFFEL_SRC/library/net/Clib ./make_msc.bat cd $EIFFEL_SRC/library/vision2/Clib ./make_msc.bat cd $EIFFEL_SRC/library/wel/Clib ./make_msc.bat
- Compiling C code from C_library
 
DOS
cd %EIFFEL_SRC%/C_library/zlib make_msc.bat cd %EIFFEL_SRC%/C_library/libpng make_msc.bat
Bash
cd $EIFFEL_SRC/C_library/zlib ./make_msc.bat cd $EIFFEL_SRC/C_library/libpng ./make_msc.bat
- Compiling C code from compiler
 
DOS
cd %EIFFEL_SRC%/Eiffel/library/cli_writer/Clib nmake
Bash
cd $EIFFEL_SRC/Eiffel/library/cli_writer/Clib nmake
Start Eiffel Studio
You should be able now to create a vision2 project and compile it !!!
Resources
- In order to be able to change the library code you have to delete the 'readonly="True"' in the library tags of the project's acex file
 
- Gdk - Resources:
- class GdkDisplay
 - class GdkScreen
 
 
- WEL - Resources:
- NONE
 
 
- Win32 API - Resources:
- look at the platform SDK under 'Win32 API'
 -  Wel uses a loopback function to get access to all fonts (it's pretty much the same that we have to do)
- in the SDK you find the EnumFontFamilies function under 'Graphics Device Interface' -> 'Fonts and Text' -> '... Reference' -> '... Functions'
 - look at %Eiffel%\library\wel\clib\enumfold.c
 - look at class wel_font_family_enumerator - especially at feature cwin_enum_font_families
 
 
 
- Team SVN Rep: You need to backup and remove the directories 'vison2' and 'wel' in your '/Eiffel57/library/' directory and run a svn checkout from https://eiffelsoftware.origo.ethz.ch/svn/es/branches/soft-arch/TeamMultiScreenSupport .
 
Implementation
class EV_SCREEN:
- allscreenslist [EV_MULTISCREEN]
 - primaryscreen : EV_MULTISCREEN
 
class EV_MULTISCREEN (inherits EV_SCREEN):
- create class
 - redefine inherited features for mutliscreen as needed
 
class EV_SCREEN_IMP (inherits EV_SCREEN_I):
- add multiscreen features as needed
 
class EV_SCREEN_I:
- add new deferred features from EV_SCREEN_IMP
 
class GDK_EXTERNALS:
- add multiscreen features as needed
 
Milestones
M1: June 1st
- needed gdk features
 - decide upon implementation
 
M2: May ???
- To be completed by the team
 
To do
- Fabio:
- find needed WEL features (and underlying routines - WIN32 API)
 - create svn-dir (done. see resources)
 - look at Win32API and get dummy prog to work (see resources)
 
 
- Pascal:
- look at Win32API and get dummy prog to work (see resources)
 
 
- Pawi
- find out how to do the docu
 
 
- Dario
- find out how works 'external' (done. works under linux)
 - create Class EV_MULTISCREEN (inherits EV_SCREEN)
 - look at Win32API and get dummy prog to work (see resources)
 
 
Team
Everyone interested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch

