openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] half


From: Drew Hess
Subject: Re: [Openexr-devel] half
Date: Mon, 10 Feb 2003 00:02:05 -0800 (PST)

Hi Jukka,

I've been off working on some other projects unrelated to OpenEXR, but
I'll be spending some time on the OpenEXR Windows port this week.

I'd like to keep the generation of the half<->float lookup tables a
compile-time thing.  For some reason, this step is really slow on my OS X
box.  It might be due to the fact that it's a 400MHz G4, or it might be an
OS X thing; I haven't had time to investigate.  Anyway, I don't want to
have to pay the cost of this at runtime when it can easily be done at
compile time instead.  It may not matter for some long-running
applications, but simple, fast-running utility programs could be adversely
affected.

The patches I've received so far for VC++.NET were somewhat incomplete;  
not all the files were ported.  What's there is a good starting point, but
obviously we need a complete port (including the confidence tests and
exrdisplay).  The anecdotes you've been sending me about your OpenEXR and
VC++.NET work have been a great source of information, too.  Your efforts
haven't been in vain.  If you happen to have complete project files for
VC++.NET, please send them to me.  I think I've gathered enough
information from you and the other VC++.NET users on the list to get the
source code compiling, but I don't know much about project files.

Looks like the VC++ 6.0 port using the Intel compiler requires a lot fewer 
changes to the existing source than the VC++.NET port will take, so I'll 
probably be concentrating on that first, using Dustin Graves' work and 
some of the things that have been discussed by others on this list.

So I think that first we'll have a VC++ 6.0 port using the Intel compiler
(an "official" one, at least -- Dustin's already got a very good
unofficial port), then a VC++.NET port.  I'll release pre-compiled libs
for both since I doubt that most people will care to compile the library
from scratch (and also so that VC++ 6.0 users won't have to purchase
Intel's compiler to use OpenEXR).  Doesn't look like a VC++ 6.0 port using
the Microsoft VC++ 6.0 compiler will ever happen.  It would require 
wholesale changes to the OpenEXR API.

And, of course, you are free to use Half as a separate library in your
application, since the license permits that.  You're not stepping on
anybody's toes :)


-dwh-

p.s. someone who submitted some VC++.NET patches said that because the
Microsoft compiler can't instantiate templates outside of the module
they're compiled into, all the OpenEXR libs need to be compiled into a
single archive/DLL.  But it looks like Dustin's VC++ 6.0 Intel compiler
port compiles separate libraries (IlmImf, Imath, Half, Iex) like the UNIX
ports do.  Can anyone clear this up?  Will Microsoft's VC++ 6.0 compiler
have problems linking the separate Intel-compiled libraries into
Microsoft-compiled executables because of template instantiation problems?



 On Sat, 8 Feb 2003, Jukka Liimatta wrote:

> 
> Been awfully quiet here lately ; I haven't heard how far the Visual C++ .NET
> (7.x) port has progressed, but since I needed the Half/* source tree in own
> project (DirectX 9 related), I fixed the files to compile with VC++.NET.
> 
> In the same stroke I removed the two .cpp files to generate the two header
> files used for lookup tables in the half.cpp for float <-> half conversion
> (the 16 bit half->float table and the float->half exponent table). I noticed
> the half.cpp already does initialize a dummy bool to force self-test being
> executed when the translation unit is initialized by the c++ runtime.
> 
> So Before selftest is performend, the lookup tables are 
initialized.. this
> eliminates nicely the requirement for separate compilation for the modules
> to generate the headers. I just like this way better, feedback is
> appreciated.
> 
> I also made the inclusion of <half.h> to use the local filename instead,
> "half.h" as the cpp files and headers are in the same folder.. this is
> quicker for the compiler and doesn't require the include path to be set for
> the compiler (or passed as -I to the compiler either).
> 
> Oh, also fixed the deprecated headers such as <assert.h> -> <cassert>, and
> equivalent.. g++ 2.95.x / 3.2.x, MIPSpro 7.3.x and others should be fairly
> up-to-date regarding this.
> 
> The proposed versions of the files are at:
> 
> www.liimatta.org/misc/half.zip
> 
> Feedback is appreacited, it would be nice to know if my work was in vain or
> will not be considered, or the work already been done, whatever.. I did
> quite a bit of work to port the library to VC++.NET few weeks back, just to
> find out the work already been done so it would be cool to get access to the
> latest snapshots or something like that to work with fresher files.
> 
> Apologies for stepping into anyone's toes.. that's furthest thing I would
> like to do, just found the half.cpp and half.h -very- useful in practical
> applications outside the OpenEXR domain (in open source project though). I'd
> gladly also use the OpenEXR when the Windows port is stable (and offer help
> in anyway I can to make this to be realized sooner).
> 
> 
> Jukka T. Liimatta
> Twilight 3D Finland Ltd
> address@hidden
> 
> http://www.twilight3d.com
> 
> 
> 
> _______________________________________________
> Openexr-devel mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/openexr-devel
> 










reply via email to

[Prev in Thread] Current Thread [Next in Thread]