You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(46) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(185) |
Feb
(242) |
Mar
(237) |
Apr
(180) |
May
(102) |
Jun
(278) |
Jul
(114) |
Aug
(92) |
Sep
(246) |
Oct
(212) |
Nov
(279) |
Dec
(99) |
| 2007 |
Jan
(130) |
Feb
(194) |
Mar
(22) |
Apr
(72) |
May
(40) |
Jun
(111) |
Jul
(114) |
Aug
(154) |
Sep
(114) |
Oct
(2) |
Nov
(1) |
Dec
(5) |
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(51) |
Nov
(34) |
Dec
(130) |
| 2009 |
Jan
(22) |
Feb
(20) |
Mar
(41) |
Apr
(45) |
May
(82) |
Jun
(96) |
Jul
(48) |
Aug
(90) |
Sep
(13) |
Oct
(49) |
Nov
(31) |
Dec
(21) |
| 2010 |
Jan
(25) |
Feb
(9) |
Mar
(7) |
Apr
(28) |
May
(27) |
Jun
(7) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(13) |
Dec
(2) |
| 2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <axl...@us...> - 2009-05-14 22:15:03
|
Revision: 245
http://hgengine.svn.sourceforge.net/hgengine/?rev=245&view=rev
Author: axlecrusher
Date: 2009-05-14 22:15:01 +0000 (Thu, 14 May 2009)
Log Message:
-----------
Fix windows compile
Modified Paths:
--------------
Mercury2/src/MSemaphore.cpp
Mercury2/src/MSemaphore.h
Mercury2/src/MercuryThreads.cpp
Mercury2/src/PNGLoader.cpp
Modified: Mercury2/src/MSemaphore.cpp
===================================================================
--- Mercury2/src/MSemaphore.cpp 2009-05-14 21:59:18 UTC (rev 244)
+++ Mercury2/src/MSemaphore.cpp 2009-05-14 22:15:01 UTC (rev 245)
@@ -65,8 +65,27 @@
return Old;
}
+FORCEINLINE
+LONG
+__sync_and_and_fetch (
+ __inout LONG volatile *Destination,
+ __in LONG Value
+ )
+{
+ LONG Old;
+
+ do {
+ Old = *Destination;
+ } while (InterlockedCompareExchange(Destination,
+ Old & Value,
+ Old) != Old);
+
+ return Old & Value;
+}
+
#define SYNC_OR_AND_FETCH(d,v) OrAndFetch(d,v)
#define COMPARE_AND_SWAP(d,o,n) InterlockedCompareExchange(d, n, o)
+#define SYNC_AND_AND_FETCH(d,v) __sync_and_and_fetch(d,v)
unsigned long MSemaphore::ReadAndClear()
{
@@ -90,15 +109,15 @@
return SYNC_OR_AND_FETCH(&m_semaphore, 0);
}
-void MSemaphore::WaitAndSet(unsigned long value, unsigned long newVal)
+void MSemaphore::WaitAndSet(uint32_t value, uint32_t newVal)
{
- while( COMPARE_AND_SWAP(&m_semaphore, value, newVal) != value );
+ while( COMPARE_AND_SWAP(&m_semaphore, value, newVal) != ((int32_t)value) );
}
void MSemaphore::Wait()
{
uint32_t thread = MercuryThread::Current();
- if ( SYNC_OR_AND_FETCH(&m_semaphore, 0) == thread) //recursive lock
+ if ( SYNC_OR_AND_FETCH(&m_semaphore, 0) == ((int32_t)thread) ) //recursive lock
{
++m_lockCount;
return;
@@ -111,7 +130,7 @@
void MSemaphore::UnLock()
{
uint32_t thread = MercuryThread::Current();
- if ( SYNC_OR_AND_FETCH(&m_semaphore, 0) == thread) //unlock given from correct thread
+ if ( SYNC_OR_AND_FETCH(&m_semaphore, 0) == ((int32_t)thread) ) //unlock given from correct thread
{
--m_lockCount;
if (m_lockCount == 0) SYNC_AND_AND_FETCH(&m_semaphore, 0 );
Modified: Mercury2/src/MSemaphore.h
===================================================================
--- Mercury2/src/MSemaphore.h 2009-05-14 21:59:18 UTC (rev 244)
+++ Mercury2/src/MSemaphore.h 2009-05-14 22:15:01 UTC (rev 245)
@@ -16,7 +16,7 @@
unsigned long ReadAndClear();
unsigned long Decrement();
unsigned long Increment();
- void WaitAndSet(unsigned long value, unsigned long newVal);
+ void WaitAndSet(uint32_t value, uint32_t newVal);
void Wait();
void UnLock();
@@ -27,7 +27,7 @@
#ifndef WIN32
uint32_t m_semaphore;
#else
- volatile LONG m_counter; //align to 32bit boundary
+ volatile LONG m_semaphore; //align to 32bit boundary
#endif
};
Modified: Mercury2/src/MercuryThreads.cpp
===================================================================
--- Mercury2/src/MercuryThreads.cpp 2009-05-14 21:59:18 UTC (rev 244)
+++ Mercury2/src/MercuryThreads.cpp 2009-05-14 22:15:01 UTC (rev 245)
@@ -121,7 +121,11 @@
unsigned long MercuryThread::Current()
{
+#ifdef WIN32
+ return GetCurrentThreadId();
+#else
return pthread_self();
+#endif
}
Modified: Mercury2/src/PNGLoader.cpp
===================================================================
--- Mercury2/src/PNGLoader.cpp 2009-05-14 21:59:18 UTC (rev 244)
+++ Mercury2/src/PNGLoader.cpp 2009-05-14 22:15:01 UTC (rev 245)
@@ -1,8 +1,8 @@
-#include <ImageLoader.h>
-#include <MercuryUtil.h>
-
-#include <assert.h>
-
+#include <ImageLoader.h>
+#include <MercuryUtil.h>
+
+#include <assert.h>
+
#if defined(WIN32)
# include <png.h>
# if defined(_MSC_VER)
@@ -12,173 +12,173 @@
#else
# include <png.h>
#endif
-
-
-void PNGRead( png_struct *png, png_byte *p, png_size_t size )
-{
- MercuryFile * f = (MercuryFile*)png->io_ptr;
-
- int got = f->Read( p, (unsigned long)size );
-// int got = fread(p, size, 1, f );
-
- if( got == -1 )
- png_error( png, "Error reading from file");
-// else if( got != size )
-// png_error( png, "Unexpected EOF" );
-}
-
-RawImageData* LoadPNG( MercuryFile * fp )
-{
- png_structp png_ptr;
- png_infop info_ptr;
- int number_of_passes;
- png_bytep* row_pointers;
- png_byte color_type;
- png_byte bit_depth;
- RawImageData* image = 0;
- unsigned char header[8]; // 8 is the maximum size that can be checked
-
- //open file and test for it being a png
- if (!fp)
- assert("[read_png_file] File %s could not be opened for reading");
- fp->Read(header, 8 );
-// fread(header, 8, 1, fp);
- if (png_sig_cmp(header, 0, 8))
- assert("[read_png_file] File %s is not recognized as a PNG file");
-
-
- //initialize stuff
- png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
-
- if (!png_ptr)
- assert("[read_png_file] png_create_read_struct failed");
-
- info_ptr = png_create_info_struct(png_ptr);
- if (!info_ptr)
- assert("[read_png_file] png_create_info_struct failed");
-
- if (setjmp(png_jmpbuf(png_ptr)))
- assert("[read_png_file] Error during init_io");
-
- png_set_sig_bytes(png_ptr, 8);
- png_set_read_fn( png_ptr, fp, PNGRead );
-
- png_read_info(png_ptr, info_ptr);
-
- image = new RawImageData;
-
- image->m_width = info_ptr->width;
- image->m_height = info_ptr->height;
- color_type = info_ptr->color_type;
- bit_depth = info_ptr->bit_depth;
-
-// if ( color_type & PNG_COLOR_MASK_PALETTE )
-// {
-// SAFE_DELETE(image);
-// assert("Cannot open paletted PNG files.");
-// }
- if (color_type == PNG_COLOR_TYPE_PALETTE)
- png_set_palette_to_rgb(png_ptr);
-
- number_of_passes = png_set_interlace_handling(png_ptr);
- png_read_update_info(png_ptr, info_ptr);
-
- // read file
- if (setjmp(png_jmpbuf(png_ptr)))
- {
- SAFE_DELETE_ARRAY(image);
- assert("[read_png_file] Error during read_image");
- }
-
- row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * image->m_height);
- unsigned int y;
- for ( y=0; y < (unsigned)image->m_height; y++)
- row_pointers[y] = (png_byte*) malloc(info_ptr->rowbytes);
-
- png_read_image(png_ptr, row_pointers);
-
- png_read_end( png_ptr, info_ptr );
- png_destroy_read_struct( &png_ptr, &info_ptr, NULL );
-
- png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
-
- if (color_type & PNG_COLOR_MASK_ALPHA)
- image->m_ColorByteType = RGBA;
- else
- image->m_ColorByteType = RGB;
-
-// SAFE_DELETE(texture->m_data);
-
- image->m_data = new unsigned char[sizeof(unsigned char) * image->m_height * image->m_width * 4];
-
- switch (image->m_ColorByteType)
- {
- case RGBA:
- for ( y=0; y < (unsigned)image->m_height; ++y) {
- png_byte* row = row_pointers[y];
- for (unsigned long x = 0; x < image->m_width; ++x) {
- png_byte* ptr = &(row[x*4]);
- image->m_data[(x + y * image->m_width) * 4] = ptr[0];
- image->m_data[(x + y * image->m_width) * 4 + 1] = ptr[1];
- image->m_data[(x + y * image->m_width) * 4 + 2] = ptr[2];
- image->m_data[(x + y * image->m_width) * 4 + 3] = ptr[3];
- }
- }
- break;
- case RGB:
- for ( y=0; y < (unsigned)image->m_height; y++) {
- png_byte* row = row_pointers[y];
- for (unsigned long x=0; x<image->m_width; x++) {
- png_byte* ptr = &(row[x * 3]);
- image->m_data[(x + y * image->m_width) * 3] = ptr[0];
- image->m_data[(x + y * image->m_width) * 3 + 1] = ptr[1];
- image->m_data[(x + y * image->m_width) * 3 + 2] = ptr[2];
- }
- }
- break;
- default:
- printf("Invalid color byte type for PNG.\n");
- SAFE_DELETE_ARRAY( image );
- return false;
- }
-
- for ( y=0; y < (unsigned)image->m_height; y++)
- SAFE_FREE(row_pointers[y]);
- SAFE_FREE(row_pointers);
-
-// texture->CorrectSize();
-// texture->CreateCache();
-
- return image;
-}
-
-REGISTER_IMAGE_TYPE(\x89PN, LoadPNG);
-
-/*
- * Copyright (c) 2004 Glenn Maynard
- * (c) 2008 Joshua Allen
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the distribution.
- * - Neither the name of the Mercury Engine nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+void PNGRead( png_struct *png, png_byte *p, png_size_t size )
+{
+ MercuryFile * f = (MercuryFile*)png->io_ptr;
+
+ int got = f->Read( p, (unsigned long)size );
+// int got = fread(p, size, 1, f );
+
+ if( got == -1 )
+ png_error( png, "Error reading from file");
+// else if( got != size )
+// png_error( png, "Unexpected EOF" );
+}
+
+RawImageData* LoadPNG( MercuryFile * fp )
+{
+ png_structp png_ptr;
+ png_infop info_ptr;
+ int number_of_passes;
+ png_bytep* row_pointers;
+ png_byte color_type;
+ png_byte bit_depth;
+ RawImageData* image = 0;
+ unsigned char header[8]; // 8 is the maximum size that can be checked
+
+ //open file and test for it being a png
+ if (!fp)
+ assert("[read_png_file] File %s could not be opened for reading");
+ fp->Read(header, 8 );
+// fread(header, 8, 1, fp);
+ if (png_sig_cmp(header, 0, 8))
+ assert("[read_png_file] File %s is not recognized as a PNG file");
+
+
+ //initialize stuff
+ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+
+ if (!png_ptr)
+ assert("[read_png_file] png_create_read_struct failed");
+
+ info_ptr = png_create_info_struct(png_ptr);
+ if (!info_ptr)
+ assert("[read_png_file] png_create_info_struct failed");
+
+ if (setjmp(png_jmpbuf(png_ptr)))
+ assert("[read_png_file] Error during init_io");
+
+ png_set_sig_bytes(png_ptr, 8);
+ png_set_read_fn( png_ptr, fp, PNGRead );
+
+ png_read_info(png_ptr, info_ptr);
+
+ image = new RawImageData;
+
+ image->m_width = info_ptr->width;
+ image->m_height = info_ptr->height;
+ color_type = info_ptr->color_type;
+ bit_depth = info_ptr->bit_depth;
+
+// if ( color_type & PNG_COLOR_MASK_PALETTE )
+// {
+// SAFE_DELETE(image);
+// assert("Cannot open paletted PNG files.");
+// }
+ if (color_type == PNG_COLOR_TYPE_PALETTE)
+ png_set_palette_to_rgb(png_ptr);
+
+ number_of_passes = png_set_interlace_handling(png_ptr);
+ png_read_update_info(png_ptr, info_ptr);
+
+ // read file
+ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ SAFE_DELETE_ARRAY(image);
+ assert("[read_png_file] Error during read_image");
+ }
+
+ row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * image->m_height);
+ unsigned int y;
+ for ( y=0; y < (unsigned)image->m_height; y++)
+ row_pointers[y] = (png_byte*) malloc(info_ptr->rowbytes);
+
+ png_read_image(png_ptr, row_pointers);
+
+ png_read_end( png_ptr, info_ptr );
+ png_destroy_read_struct( &png_ptr, &info_ptr, NULL );
+
+ png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
+
+ if (color_type & PNG_COLOR_MASK_ALPHA)
+ image->m_ColorByteType = RGBA;
+ else
+ image->m_ColorByteType = RGB;
+
+// SAFE_DELETE(texture->m_data);
+
+ image->m_data = new unsigned char[sizeof(unsigned char) * image->m_height * image->m_width * 4];
+
+ switch (image->m_ColorByteType)
+ {
+ case RGBA:
+ for ( y=0; y < (unsigned)image->m_height; ++y) {
+ png_byte* row = row_pointers[y];
+ for (unsigned long x = 0; x < image->m_width; ++x) {
+ png_byte* ptr = &(row[x*4]);
+ image->m_data[(x + y * image->m_width) * 4] = ptr[0];
+ image->m_data[(x + y * image->m_width) * 4 + 1] = ptr[1];
+ image->m_data[(x + y * image->m_width) * 4 + 2] = ptr[2];
+ image->m_data[(x + y * image->m_width) * 4 + 3] = ptr[3];
+ }
+ }
+ break;
+ case RGB:
+ for ( y=0; y < (unsigned)image->m_height; y++) {
+ png_byte* row = row_pointers[y];
+ for (unsigned long x=0; x<image->m_width; x++) {
+ png_byte* ptr = &(row[x * 3]);
+ image->m_data[(x + y * image->m_width) * 3] = ptr[0];
+ image->m_data[(x + y * image->m_width) * 3 + 1] = ptr[1];
+ image->m_data[(x + y * image->m_width) * 3 + 2] = ptr[2];
+ }
+ }
+ break;
+ default:
+ printf("Invalid color byte type for PNG.\n");
+ SAFE_DELETE_ARRAY( image );
+ return false;
+ }
+
+ for ( y=0; y < (unsigned)image->m_height; y++)
+ SAFE_FREE(row_pointers[y]);
+ SAFE_FREE(row_pointers);
+
+// texture->CorrectSize();
+// texture->CreateCache();
+
+ return image;
+}
+
+REGISTER_IMAGE_TYPE(\x89PN, LoadPNG);
+
+/*
+ * Copyright (c) 2004 Glenn Maynard
+ * (c) 2008 Joshua Allen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ * - Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Mercury Engine nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-14 21:59:27
|
Revision: 244
http://hgengine.svn.sourceforge.net/hgengine/?rev=244&view=rev
Author: axlecrusher
Date: 2009-05-14 21:59:18 +0000 (Thu, 14 May 2009)
Log Message:
-----------
use a semaphore in place of a mutex
Modified Paths:
--------------
Mercury2/src/MAutoPtr.h
Modified: Mercury2/src/MAutoPtr.h
===================================================================
--- Mercury2/src/MAutoPtr.h 2009-05-14 11:01:14 UTC (rev 243)
+++ Mercury2/src/MAutoPtr.h 2009-05-14 21:59:18 UTC (rev 244)
@@ -2,8 +2,10 @@
#define MAUTOPTR_H
#include <MercuryThreads.h>
+#include <MSemaphore.h>
#include <stdlib.h>
+
class RefBase
{
public:
@@ -135,12 +137,16 @@
T* m_ptr;
- static MercuryMutex m_criticalSection;
+// static MercuryMutex m_criticalSection;
+ static MSemaphore m_criticalSection;
};
template<typename T>
-MercuryMutex MAutoPtr<T>::m_criticalSection = MercuryMutex();
+MSemaphore MAutoPtr<T>::m_criticalSection;
+//template<typename T>
+//MercuryMutex MAutoPtr<T>::m_criticalSection = MercuryMutex();
+
#endif
/***************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-14 11:01:23
|
Revision: 243
http://hgengine.svn.sourceforge.net/hgengine/?rev=243&view=rev
Author: axlecrusher
Date: 2009-05-14 11:01:14 +0000 (Thu, 14 May 2009)
Log Message:
-----------
remove printfs
Modified Paths:
--------------
Mercury2/src/MSemaphore.cpp
Modified: Mercury2/src/MSemaphore.cpp
===================================================================
--- Mercury2/src/MSemaphore.cpp 2009-05-14 10:57:45 UTC (rev 242)
+++ Mercury2/src/MSemaphore.cpp 2009-05-14 11:01:14 UTC (rev 243)
@@ -1,12 +1,9 @@
#include <MSemaphore.h>
#include <MercuryThreads.h>
-#include <stdio.h>
-
MSemaphore::MSemaphore()
:m_lockCount(0), m_semaphore(0)
{
- printf("cs %d\n", m_semaphore);
}
#ifndef WIN32
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-14 10:57:53
|
Revision: 242
http://hgengine.svn.sourceforge.net/hgengine/?rev=242&view=rev
Author: axlecrusher
Date: 2009-05-14 10:57:45 +0000 (Thu, 14 May 2009)
Log Message:
-----------
method to find current thread id
Modified Paths:
--------------
Mercury2/src/MercuryThreads.h
Modified: Mercury2/src/MercuryThreads.h
===================================================================
--- Mercury2/src/MercuryThreads.h 2009-05-14 10:53:50 UTC (rev 241)
+++ Mercury2/src/MercuryThreads.h 2009-05-14 10:57:45 UTC (rev 242)
@@ -44,6 +44,8 @@
// inline void Exit() { pthread_exit(NULL); }
inline void HaltOnDestroy(bool t) { m_haltOnDestroy = t; }
+
+ static unsigned long Current();
private:
MString m_name;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-14 10:54:01
|
Revision: 241
http://hgengine.svn.sourceforge.net/hgengine/?rev=241&view=rev
Author: axlecrusher
Date: 2009-05-14 10:53:50 +0000 (Thu, 14 May 2009)
Log Message:
-----------
just use the semaphore to hold the thread id
Modified Paths:
--------------
Mercury2/src/MSemaphore.cpp
Mercury2/src/MSemaphore.h
Modified: Mercury2/src/MSemaphore.cpp
===================================================================
--- Mercury2/src/MSemaphore.cpp 2009-05-14 01:47:52 UTC (rev 240)
+++ Mercury2/src/MSemaphore.cpp 2009-05-14 10:53:50 UTC (rev 241)
@@ -1,9 +1,12 @@
#include <MSemaphore.h>
#include <MercuryThreads.h>
+#include <stdio.h>
+
MSemaphore::MSemaphore()
- :m_counter(0)
+ :m_lockCount(0), m_semaphore(0)
{
+ printf("cs %d\n", m_semaphore);
}
#ifndef WIN32
@@ -13,24 +16,19 @@
unsigned long MSemaphore::ReadAndClear()
{
- return __sync_fetch_and_and(&m_counter, 0);
+ return __sync_fetch_and_and(&m_semaphore, 0);
}
unsigned long MSemaphore::Decrement()
{
- return __sync_sub_and_fetch(&m_counter, 1);
+ return __sync_sub_and_fetch(&m_semaphore, 1);
}
unsigned long MSemaphore::Increment()
{
- return __sync_add_and_fetch(&m_counter, 1);
+ return __sync_add_and_fetch(&m_semaphore, 1);
}
-void MSemaphore::WaitAndSet(unsigned long value, unsigned long newVal)
-{
- while( (unsigned long)__sync_val_compare_and_swap(&m_counter, value, newVal) != value );
-}
-
#else
FORCEINLINE
@@ -75,51 +73,51 @@
unsigned long MSemaphore::ReadAndClear()
{
- return MyInterlockedAnd(&m_counter, 0);
+ return MyInterlockedAnd(&m_semaphore, 0);
}
unsigned long MSemaphore::Decrement()
{
- return InterlockedDecrement(&m_counter);
+ return InterlockedDecrement(&m_semaphore);
}
unsigned long MSemaphore::Increment()
{
- return InterlockedIncrement(&m_counter);
+ return InterlockedIncrement(&m_semaphore);
}
-void MSemaphore::WaitAndSet(unsigned long value, unsigned long newVal)
-{
- while ( InterlockedCompareExchange(Destination, newVal, value) != value );
-}
-
#endif
unsigned long MSemaphore::Read()
{
- return SYNC_OR_AND_FETCH(&m_counter, 0);
+ return SYNC_OR_AND_FETCH(&m_semaphore, 0);
}
+void MSemaphore::WaitAndSet(unsigned long value, unsigned long newVal)
+{
+ while( COMPARE_AND_SWAP(&m_semaphore, value, newVal) != value );
+}
+
void MSemaphore::Wait()
{
uint32_t thread = MercuryThread::Current();
- if ( COMPARE_AND_SWAP(&m_thread, 0, thread) == thread) //recursive lock
+ if ( SYNC_OR_AND_FETCH(&m_semaphore, 0) == thread) //recursive lock
{
++m_lockCount;
return;
}
- WaitAndSet(0,1);
+
+ WaitAndSet(0,thread); //new lock
++m_lockCount;
}
void MSemaphore::UnLock()
{
uint32_t thread = MercuryThread::Current();
- if ( SYNC_OR_AND_FETCH(&m_thread, 0) == thread) //unlock given from correct thread
+ if ( SYNC_OR_AND_FETCH(&m_semaphore, 0) == thread) //unlock given from correct thread
{
--m_lockCount;
- if (m_lockCount == 0) WaitAndSet(1,0);
- SYNC_AND_AND_FETCH(&m_thread, 0 );
+ if (m_lockCount == 0) SYNC_AND_AND_FETCH(&m_semaphore, 0 );
}
}
Modified: Mercury2/src/MSemaphore.h
===================================================================
--- Mercury2/src/MSemaphore.h 2009-05-14 01:47:52 UTC (rev 240)
+++ Mercury2/src/MSemaphore.h 2009-05-14 10:53:50 UTC (rev 241)
@@ -22,14 +22,12 @@
void UnLock();
private:
- //what exactly needs to be volatile
+ //what exactly needs to be volatile?
uint32_t m_lockCount;
#ifndef WIN32
- uint32_t m_counter;
- uint32_t m_thread;
+ uint32_t m_semaphore;
#else
volatile LONG m_counter; //align to 32bit boundary
- volatile LONG m_thread;
#endif
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-14 02:03:30
|
Revision: 240
http://hgengine.svn.sourceforge.net/hgengine/?rev=240&view=rev
Author: axlecrusher
Date: 2009-05-14 01:47:52 +0000 (Thu, 14 May 2009)
Log Message:
-----------
recursive lock semaphore???
Modified Paths:
--------------
Mercury2/src/MSemaphore.cpp
Mercury2/src/MSemaphore.h
Mercury2/src/MercuryThreads.cpp
Modified: Mercury2/src/MSemaphore.cpp
===================================================================
--- Mercury2/src/MSemaphore.cpp 2009-05-13 02:26:18 UTC (rev 239)
+++ Mercury2/src/MSemaphore.cpp 2009-05-14 01:47:52 UTC (rev 240)
@@ -1,4 +1,5 @@
#include <MSemaphore.h>
+#include <MercuryThreads.h>
MSemaphore::MSemaphore()
:m_counter(0)
@@ -6,10 +7,9 @@
}
#ifndef WIN32
-unsigned long MSemaphore::Read()
-{
- return __sync_or_and_fetch(&m_counter, 0);
-}
+#define SYNC_OR_AND_FETCH(d,v) __sync_or_and_fetch(d,v)
+#define COMPARE_AND_SWAP(d,o,n) __sync_val_compare_and_swap(d,o,n)
+#define SYNC_AND_AND_FETCH(d,v) __sync_and_and_fetch(d,v)
unsigned long MSemaphore::ReadAndClear()
{
@@ -28,7 +28,7 @@
void MSemaphore::WaitAndSet(unsigned long value, unsigned long newVal)
{
- while ( !__sync_bool_compare_and_swap(&m_counter, value, newVal) );
+ while( (unsigned long)__sync_val_compare_and_swap(&m_counter, value, newVal) != value );
}
#else
@@ -70,11 +70,8 @@
return Old;
}
-unsigned long MSemaphore::Read()
-{
- return OrAndFetch(&m_counter, 0);
-// return MyInterlockedOr(&m_counter, 0);
-}
+#define SYNC_OR_AND_FETCH(d,v) OrAndFetch(d,v)
+#define COMPARE_AND_SWAP(d,o,n) InterlockedCompareExchange(d, n, o)
unsigned long MSemaphore::ReadAndClear()
{
@@ -93,21 +90,48 @@
void MSemaphore::WaitAndSet(unsigned long value, unsigned long newVal)
{
- InterlockedCompareExchange(&m_counter, newVal, value);
-// while ( !__sync_bool_compare_and_swap(&m_counter, value, newVal) );
+ while ( InterlockedCompareExchange(Destination, newVal, value) != value );
}
#endif
+unsigned long MSemaphore::Read()
+{
+ return SYNC_OR_AND_FETCH(&m_counter, 0);
+}
+
+void MSemaphore::Wait()
+{
+ uint32_t thread = MercuryThread::Current();
+ if ( COMPARE_AND_SWAP(&m_thread, 0, thread) == thread) //recursive lock
+ {
+ ++m_lockCount;
+ return;
+ }
+ WaitAndSet(0,1);
+ ++m_lockCount;
+}
+
+void MSemaphore::UnLock()
+{
+ uint32_t thread = MercuryThread::Current();
+ if ( SYNC_OR_AND_FETCH(&m_thread, 0) == thread) //unlock given from correct thread
+ {
+ --m_lockCount;
+ if (m_lockCount == 0) WaitAndSet(1,0);
+ SYNC_AND_AND_FETCH(&m_thread, 0 );
+ }
+}
+
MSemaphoreLock::MSemaphoreLock(MSemaphore* s)
:m_s(s)
{
- m_s->WaitAndSet(0,1);
+ m_s->Wait();
}
MSemaphoreLock::~MSemaphoreLock()
{
- m_s->WaitAndSet(1,0);
+ m_s->UnLock();
}
MSemaphoreIncOnDestroy::MSemaphoreIncOnDestroy(MSemaphore* s)
Modified: Mercury2/src/MSemaphore.h
===================================================================
--- Mercury2/src/MSemaphore.h 2009-05-13 02:26:18 UTC (rev 239)
+++ Mercury2/src/MSemaphore.h 2009-05-14 01:47:52 UTC (rev 240)
@@ -17,13 +17,19 @@
unsigned long Decrement();
unsigned long Increment();
void WaitAndSet(unsigned long value, unsigned long newVal);
-
+
+ void Wait();
+ void UnLock();
private:
+ //what exactly needs to be volatile
+ uint32_t m_lockCount;
#ifndef WIN32
- int32_t m_counter;
+ uint32_t m_counter;
+ uint32_t m_thread;
#else
- volatile LONG m_counter;
+ volatile LONG m_counter; //align to 32bit boundary
+ volatile LONG m_thread;
#endif
};
Modified: Mercury2/src/MercuryThreads.cpp
===================================================================
--- Mercury2/src/MercuryThreads.cpp 2009-05-13 02:26:18 UTC (rev 239)
+++ Mercury2/src/MercuryThreads.cpp 2009-05-14 01:47:52 UTC (rev 240)
@@ -119,6 +119,12 @@
}
}
+unsigned long MercuryThread::Current()
+{
+ return pthread_self();
+}
+
+
//Mutex functions
MercuryMutex::MercuryMutex( )
:m_name("(null)")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-13 02:26:27
|
Revision: 239
http://hgengine.svn.sourceforge.net/hgengine/?rev=239&view=rev
Author: axlecrusher
Date: 2009-05-13 02:26:18 +0000 (Wed, 13 May 2009)
Log Message:
-----------
update
Modified Paths:
--------------
Mercury2/Mercury2.vcproj
Modified: Mercury2/Mercury2.vcproj
===================================================================
--- Mercury2/Mercury2.vcproj 2009-05-13 02:25:55 UTC (rev 238)
+++ Mercury2/Mercury2.vcproj 2009-05-13 02:26:18 UTC (rev 239)
@@ -45,7 +45,7 @@
PreprocessorDefinitions="HGENGINE,WIN32"
MinimalRebuild="true"
BasicRuntimeChecks="3"
- RuntimeLibrary="3"
+ RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="4"
Detect64BitPortabilityProblems="true"
@@ -119,7 +119,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;src;src/include;src/include/png;src/include/zlib"
PreprocessorDefinitions="HGENGINE,WIN32"
- RuntimeLibrary="2"
+ RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-13 02:26:04
|
Revision: 238
http://hgengine.svn.sourceforge.net/hgengine/?rev=238&view=rev
Author: axlecrusher
Date: 2009-05-13 02:25:55 +0000 (Wed, 13 May 2009)
Log Message:
-----------
Fix Thread related bugs.
Works on windows now.
Modified Paths:
--------------
Mercury2/src/MScopedArray.h
Mercury2/src/MSemaphore.cpp
Mercury2/src/MercuryThreads.cpp
Mercury2/src/MercuryThreads.h
Modified: Mercury2/src/MScopedArray.h
===================================================================
--- Mercury2/src/MScopedArray.h 2009-05-13 00:46:57 UTC (rev 237)
+++ Mercury2/src/MScopedArray.h 2009-05-13 02:25:55 UTC (rev 238)
@@ -16,7 +16,7 @@
{
m_criticalSection.Wait();
IncrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
MScopedArray()
@@ -30,14 +30,14 @@
m_ptr = autoPtr.m_ptr;
m_count = autoPtr.m_count;
IncrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
inline ~MScopedArray()
{
m_criticalSection.Wait();
DecrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
inline unsigned int Count()
@@ -45,7 +45,7 @@
unsigned int count = 0;
m_criticalSection.Wait();
if( m_ptr && m_count ) count = *m_count;
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
return count;
}
@@ -54,7 +54,7 @@
m_criticalSection.Wait();
DecrementReference();
m_ptr = NULL;
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
/*
void Forget()
@@ -64,7 +64,7 @@
if (m_ptr->m_count)
if ((m_ptr->m_count) > 0) { --m_ptr->m_count; }
m_ptr = NULL;
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
*/
//Comparative
@@ -89,7 +89,7 @@
DecrementReference();
m_ptr = rhs.m_ptr;
IncrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
return *this;
}
Modified: Mercury2/src/MSemaphore.cpp
===================================================================
--- Mercury2/src/MSemaphore.cpp 2009-05-13 00:46:57 UTC (rev 237)
+++ Mercury2/src/MSemaphore.cpp 2009-05-13 02:25:55 UTC (rev 238)
@@ -33,10 +33,9 @@
#else
-//These functions seem to be missing from x86 WinBase
FORCEINLINE
LONG
-MyInterlockedOr (
+OrAndFetch (
__inout LONG volatile *Destination,
__in LONG Value
)
@@ -49,9 +48,10 @@
Old | Value,
Old) != Old);
- return Old;
+ return Old | Value;
}
+//Function seem to be missing from x86 WinBase
FORCEINLINE
LONG
MyInterlockedAnd (
@@ -72,7 +72,8 @@
unsigned long MSemaphore::Read()
{
- return MyInterlockedOr(&m_counter, 0);
+ return OrAndFetch(&m_counter, 0);
+// return MyInterlockedOr(&m_counter, 0);
}
unsigned long MSemaphore::ReadAndClear()
Modified: Mercury2/src/MercuryThreads.cpp
===================================================================
--- Mercury2/src/MercuryThreads.cpp 2009-05-13 00:46:57 UTC (rev 237)
+++ Mercury2/src/MercuryThreads.cpp 2009-05-13 02:25:55 UTC (rev 238)
@@ -7,7 +7,7 @@
#include <stdio.h>
MercuryThread::MercuryThread()
- :m_name("(null)"), m_haltOnDestroy(true), m_thread(0)
+ :m_haltOnDestroy(true), m_thread(0)
{
#if defined( WIN32 )
mkThreadData = NULL;
@@ -186,7 +186,10 @@
p->nLength = sizeof( SECURITY_ATTRIBUTES );
p->bInheritHandle = true;
p->lpSecurityDescriptor = NULL;
- m_mutex = CreateMutex( p, true, (LPCWSTR)m_name.c_str() );
+ if ( m_name.empty() )
+ m_mutex = CreateMutex( p, true, NULL );
+ else
+ m_mutex = CreateMutex( p, true, (LPCWSTR)m_name.c_str() );
free( p );
return (int)m_mutex;
#else
Modified: Mercury2/src/MercuryThreads.h
===================================================================
--- Mercury2/src/MercuryThreads.h 2009-05-13 00:46:57 UTC (rev 237)
+++ Mercury2/src/MercuryThreads.h 2009-05-13 02:25:55 UTC (rev 238)
@@ -75,12 +75,14 @@
///Unlock a mutex for the next thing waiting in line.
int UnLock( );
+private:
+
///Start up a mutex. You need to do this as well as UnLock() afterwards when in a constructor.
int Open( );
-
+
///Clean up a mutex. This is done automatically on destruction of mutex.
int Close( );
-private:
+
MString m_name;
int iLockCount;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <axl...@us...> - 2009-05-13 00:47:06
|
Revision: 237
http://hgengine.svn.sourceforge.net/hgengine/?rev=237&view=rev
Author: axlecrusher
Date: 2009-05-13 00:46:57 +0000 (Wed, 13 May 2009)
Log Message:
-----------
Unlock not open
Modified Paths:
--------------
Mercury2/src/MAutoPtr.h
Modified: Mercury2/src/MAutoPtr.h
===================================================================
--- Mercury2/src/MAutoPtr.h 2009-05-12 06:02:19 UTC (rev 236)
+++ Mercury2/src/MAutoPtr.h 2009-05-13 00:46:57 UTC (rev 237)
@@ -26,7 +26,7 @@
{
m_criticalSection.Wait();
IncrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
MAutoPtr()
@@ -39,14 +39,14 @@
m_criticalSection.Wait();
m_ptr = autoPtr.m_ptr;
IncrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
inline ~MAutoPtr()
{
m_criticalSection.Wait();
DecrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
inline unsigned int Count()
@@ -54,7 +54,7 @@
unsigned int count = 0;
m_criticalSection.Wait();
if( m_ptr ) count = m_ptr->m_count;
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
return count;
}
@@ -63,7 +63,7 @@
m_criticalSection.Wait();
DecrementReference();
m_ptr = NULL;
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
/*
void Forget()
@@ -73,7 +73,7 @@
if (m_ptr->m_count)
if ((m_ptr->m_count) > 0) { --m_ptr->m_count; }
m_ptr = NULL;
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
}
*/
//Comparative
@@ -98,7 +98,7 @@
DecrementReference();
m_ptr = rhs.m_ptr;
IncrementReference();
- m_criticalSection.Open();
+ m_criticalSection.UnLock();
return *this;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 06:02:26
|
Revision: 236
http://hgengine.svn.sourceforge.net/hgengine/?rev=236&view=rev
Author: cnlohr
Date: 2009-05-12 06:02:19 +0000 (Tue, 12 May 2009)
Log Message:
-----------
fix up compile on Linux
Modified Paths:
--------------
Mercury2/src/GLHeaders.h
Mercury2/src/global.h
Modified: Mercury2/src/GLHeaders.h
===================================================================
--- Mercury2/src/GLHeaders.h 2009-05-12 06:02:07 UTC (rev 235)
+++ Mercury2/src/GLHeaders.h 2009-05-12 06:02:19 UTC (rev 236)
@@ -3,6 +3,8 @@
#ifdef WIN32
#include <windows.h>
+#else
+#define GL_GLEXT_PROTOTYPES
#endif
#include <GL/gl.h>
@@ -12,9 +14,8 @@
#include <freeglut/glut.h>
#include <OGLExtensions.h>
#else
-#define GL_GLEXT_PROTOTYPES
#include <GL/glext.h>
-#include <glut.h>
+#include <GL/freeglut.h>
#endif
#endif
\ No newline at end of file
Modified: Mercury2/src/global.h
===================================================================
--- Mercury2/src/global.h 2009-05-12 06:02:07 UTC (rev 235)
+++ Mercury2/src/global.h 2009-05-12 06:02:19 UTC (rev 236)
@@ -1,7 +1,10 @@
#ifndef GLOBAL_H
#define GLOBAL_H
+#ifdef WIN32
#pragma warning( disable : 4100 )
+#endif
+
#include <Mint.h>
#endif
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 06:02:15
|
Revision: 235
http://hgengine.svn.sourceforge.net/hgengine/?rev=235&view=rev
Author: cnlohr
Date: 2009-05-12 06:02:07 +0000 (Tue, 12 May 2009)
Log Message:
-----------
GCC wants us to be really explicit when we're assigning in an if
Modified Paths:
--------------
Mercury2/src/MercuryFileDriverDirect.cpp
Modified: Mercury2/src/MercuryFileDriverDirect.cpp
===================================================================
--- Mercury2/src/MercuryFileDriverDirect.cpp 2009-05-12 05:02:45 UTC (rev 234)
+++ Mercury2/src/MercuryFileDriverDirect.cpp 2009-05-12 06:02:07 UTC (rev 235)
@@ -41,7 +41,7 @@
data = "";
char b1[1];
bool Success;
- while ( Success = ( Read( b1, 1 ) > 0 ) )
+ while ( ( Success = ( Read( b1, 1 ) > 0 ) ) )
{
if ( ( b1[0] == '\r' ) || ( b1[0] == '\n' ) )
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 05:22:13
|
Revision: 228
http://hgengine.svn.sourceforge.net/hgengine/?rev=228&view=rev
Author: cnlohr
Date: 2009-05-12 04:58:42 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Tell Mercury to link libpng only if the zipped file driver is being used (remove dependency on project).
Modified Paths:
--------------
Mercury2/src/PNGLoader.cpp
Modified: Mercury2/src/PNGLoader.cpp
===================================================================
--- Mercury2/src/PNGLoader.cpp 2009-05-12 04:57:54 UTC (rev 227)
+++ Mercury2/src/PNGLoader.cpp 2009-05-12 04:58:42 UTC (rev 228)
@@ -1,14 +1,24 @@
#include <ImageLoader.h>
-#include <png.h>
#include <MercuryUtil.h>
#include <assert.h>
+#if defined(WIN32)
+# include <png.h>
+# if defined(_MSC_VER)
+# pragma comment(lib, "libpng.lib")
+# endif
+# pragma warning(disable: 4611) /* interaction between '_setjmp' and C++ object destruction is non-portable */
+#else
+# include <png.h>
+#endif
+
+
void PNGRead( png_struct *png, png_byte *p, png_size_t size )
{
MercuryFile * f = (MercuryFile*)png->io_ptr;
- int got = f->Read( p, size );
+ int got = f->Read( p, (unsigned long)size );
// int got = fread(p, size, 1, f );
if( got == -1 )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 05:02:53
|
Revision: 234
http://hgengine.svn.sourceforge.net/hgengine/?rev=234&view=rev
Author: cnlohr
Date: 2009-05-12 05:02:45 +0000 (Tue, 12 May 2009)
Log Message:
-----------
add OGL Extensions manager for windows.
Added Paths:
-----------
Mercury2/src/OGLExtensions.cpp
Mercury2/src/OGLExtensions.h
Added: Mercury2/src/OGLExtensions.cpp
===================================================================
--- Mercury2/src/OGLExtensions.cpp (rev 0)
+++ Mercury2/src/OGLExtensions.cpp 2009-05-12 05:02:45 UTC (rev 234)
@@ -0,0 +1,74 @@
+#include <GLHeaders.h>
+#include <OGLExtensions.h>
+
+//To be removed and switched to LOG?
+#include <stdio.h>
+
+PFNGLBINDBUFFERARBPROC glBindBufferARB;
+PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
+
+PFNGLACTIVETEXTUREPROC glActiveTexture;
+PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
+
+PFNGLGENBUFFERSARBPROC glGenBuffersARB;
+PFNGLBUFFERDATAARBPROC glBufferDataARB;
+PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
+
+
+
+PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
+PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
+PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
+PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
+PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
+PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB ;
+PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
+PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
+PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
+PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
+PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
+PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
+PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
+PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT;
+PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
+PFNGLUNIFORM1IARBPROC glUniform1iARB;
+PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
+
+
+
+#define EXTENSION( proc, name ) \
+ name = (proc)wglGetProcAddress( #name ); \
+ if( !name ) \
+ { \
+ fprintf( stderr, "Error. Could not load extensions: %s\n", #name ); \
+ }
+
+void SetupOGLExtensions()
+{
+EXTENSION( PFNGLBINDBUFFERARBPROC, glBindBufferARB );
+EXTENSION( PFNGLDELETEBUFFERSARBPROC,glDeleteBuffersARB );
+EXTENSION( PFNGLACTIVETEXTUREPROC,glActiveTexture );
+EXTENSION( PFNGLCLIENTACTIVETEXTUREARBPROC,glClientActiveTextureARB );
+EXTENSION( PFNGLGENBUFFERSARBPROC,glGenBuffersARB );
+EXTENSION( PFNGLBUFFERDATAARBPROC,glBufferDataARB );
+EXTENSION( PFNGLDRAWRANGEELEMENTSPROC,glDrawRangeElements );
+
+
+EXTENSION( PFNGLCREATEPROGRAMOBJECTARBPROC,glCreateProgramObjectARB );
+EXTENSION( PFNGLDELETEOBJECTARBPROC,glDeleteObjectARB );
+EXTENSION( PFNGLDETACHOBJECTARBPROC,glDetachObjectARB );
+EXTENSION( PFNGLGETATTACHEDOBJECTSARBPROC,glGetAttachedObjectsARB );
+EXTENSION( PFNGLUSEPROGRAMOBJECTARBPROC,glUseProgramObjectARB );
+EXTENSION( PFNGLCREATESHADEROBJECTARBPROC,glCreateShaderObjectARB );
+EXTENSION( PFNGLSHADERSOURCEARBPROC,glShaderSourceARB );
+EXTENSION( PFNGLCOMPILESHADERARBPROC,glCompileShaderARB );
+EXTENSION( PFNGLGETOBJECTPARAMETERIVARBPROC,glGetObjectParameterivARB );
+EXTENSION( PFNGLATTACHOBJECTARBPROC,glAttachObjectARB );
+EXTENSION( PFNGLGETINFOLOGARBPROC,glGetInfoLogARB );
+EXTENSION( PFNGLLINKPROGRAMARBPROC,glLinkProgramARB );
+EXTENSION( PFNGLGETUNIFORMLOCATIONARBPROC,glGetUniformLocationARB );
+EXTENSION( PFNGLPROGRAMPARAMETERIEXTPROC,glProgramParameteriEXT );
+EXTENSION( PFNGLGETACTIVEUNIFORMARBPROC,glGetActiveUniformARB );
+EXTENSION( PFNGLUNIFORM1IARBPROC,glUniform1iARB );
+EXTENSION( PFNGLUNIFORM4FVARBPROC,glUniform4fvARB );
+}
Added: Mercury2/src/OGLExtensions.h
===================================================================
--- Mercury2/src/OGLExtensions.h (rev 0)
+++ Mercury2/src/OGLExtensions.h 2009-05-12 05:02:45 UTC (rev 234)
@@ -0,0 +1,34 @@
+#ifndef _OGL_EXTENSIONS_H
+
+#include <glext.h>
+
+extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
+extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
+extern PFNGLACTIVETEXTUREPROC glActiveTexture;
+extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
+extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
+extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
+extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
+
+//glsl
+extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
+extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
+extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
+extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
+extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
+extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB ;
+extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
+extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
+extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
+extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
+extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
+extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
+extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
+extern PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT;
+extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
+extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
+extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
+
+void SetupOGLExtensions();
+
+#endif
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 05:02:31
|
Revision: 233
http://hgengine.svn.sourceforge.net/hgengine/?rev=233&view=rev
Author: cnlohr
Date: 2009-05-12 05:02:30 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Let the compiler decide to tell the linker to link the .lib so we are not dependent on the project's intelligence.
Modified Paths:
--------------
Mercury2/src/XMLParser.cpp
Modified: Mercury2/src/XMLParser.cpp
===================================================================
--- Mercury2/src/XMLParser.cpp 2009-05-12 05:01:58 UTC (rev 232)
+++ Mercury2/src/XMLParser.cpp 2009-05-12 05:02:30 UTC (rev 233)
@@ -4,7 +4,11 @@
#include <libxml/parser.h>
#include <libxml/tree.h>
-//#include <SMOException.h>
+#if defined(WIN32)
+# if defined(_MSC_VER)
+# pragma comment(lib, "libxml2.lib")
+# endif
+#endif
XMLNode::XMLNode(xmlNode* node, xmlDoc* doc)
:m_node(node), m_doc(doc)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 05:02:06
|
Revision: 232
http://hgengine.svn.sourceforge.net/hgengine/?rev=232&view=rev
Author: cnlohr
Date: 2009-05-12 05:01:58 +0000 (Tue, 12 May 2009)
Log Message:
-----------
implement more of the Win32 window.
Modified Paths:
--------------
Mercury2/src/Win32Window.cpp
Modified: Mercury2/src/Win32Window.cpp
===================================================================
--- Mercury2/src/Win32Window.cpp 2009-05-12 05:01:48 UTC (rev 231)
+++ Mercury2/src/Win32Window.cpp 2009-05-12 05:01:58 UTC (rev 232)
@@ -1,4 +1,5 @@
#include <Win32Window.h>
+#include <GLHeaders.h>
LRESULT CALLBACK WindowCallback(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); //Window callback
Callback0R< MercuryWindow* > MercuryWindow::genWindowClbk(Win32Window::GenWin32Window); //Register window generation callback
@@ -197,11 +198,13 @@
void* Win32Window::GetProcAddress(const MString& x)
{
- return NULL;
+ return wglGetProcAddress( x.c_str() );
}
void Win32Window::Clear()
{
+ glClearColor( .1f, .1f, .1f, 0.0f );
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 05:01:57
|
Revision: 231
http://hgengine.svn.sourceforge.net/hgengine/?rev=231&view=rev
Author: cnlohr
Date: 2009-05-12 05:01:48 +0000 (Tue, 12 May 2009)
Log Message:
-----------
prototypes won't help us here.
Modified Paths:
--------------
Mercury2/src/MercuryVBO.cpp
Mercury2/src/Quad.cpp
Mercury2/src/Shader.cpp
Mercury2/src/Texture.cpp
Modified: Mercury2/src/MercuryVBO.cpp
===================================================================
--- Mercury2/src/MercuryVBO.cpp 2009-05-12 04:59:31 UTC (rev 230)
+++ Mercury2/src/MercuryVBO.cpp 2009-05-12 05:01:48 UTC (rev 231)
@@ -1,7 +1,5 @@
#include <MercuryVBO.h>
-#define GL_GLEXT_PROTOTYPES
-
#include <GLHeaders.h>
Modified: Mercury2/src/Quad.cpp
===================================================================
--- Mercury2/src/Quad.cpp 2009-05-12 04:59:31 UTC (rev 230)
+++ Mercury2/src/Quad.cpp 2009-05-12 05:01:48 UTC (rev 231)
@@ -1,7 +1,5 @@
#include <Quad.h>
-#define GL_GLEXT_PROTOTYPES
-
#include <GLHeaders.h>
Modified: Mercury2/src/Shader.cpp
===================================================================
--- Mercury2/src/Shader.cpp 2009-05-12 04:59:31 UTC (rev 230)
+++ Mercury2/src/Shader.cpp 2009-05-12 05:01:48 UTC (rev 231)
@@ -2,8 +2,6 @@
#include <RenderableNode.h>
#include <MercuryFile.h>
-#define GL_GLEXT_PROTOTYPES
-
#include <GLHeaders.h>
Modified: Mercury2/src/Texture.cpp
===================================================================
--- Mercury2/src/Texture.cpp 2009-05-12 04:59:31 UTC (rev 230)
+++ Mercury2/src/Texture.cpp 2009-05-12 05:01:48 UTC (rev 231)
@@ -2,8 +2,6 @@
#include <RenderableNode.h>
#include <ImageLoader.h>
-#define GL_GLEXT_PROTOTYPES
-
#include <GLHeaders.h>
using namespace std;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:59:32
|
Revision: 230
http://hgengine.svn.sourceforge.net/hgengine/?rev=230&view=rev
Author: cnlohr
Date: 2009-05-12 04:59:31 +0000 (Tue, 12 May 2009)
Log Message:
-----------
cleanup warnings on Win32.
Modified Paths:
--------------
Mercury2/src/MercuryUtil.cpp
Modified: Mercury2/src/MercuryUtil.cpp
===================================================================
--- Mercury2/src/MercuryUtil.cpp 2009-05-12 04:59:03 UTC (rev 229)
+++ Mercury2/src/MercuryUtil.cpp 2009-05-12 04:59:31 UTC (rev 230)
@@ -17,14 +17,22 @@
float StrToFloat(const MString & s, float d)
{
float x = d;
+#if defined( WIN32 ) && !defined( LEAN_HG )
+ if ( s.length() > 0) sscanf_s(s.c_str(), "%f", &x);
+#else
if ( s.length() > 0) sscanf(s.c_str(), "%f", &x);
+#endif
return x;
}
int32_t StrToInt(const MString & s, int32_t d)
{
int32_t x = d;
+#if defined( WIN32 ) && !defined( LEAN_HG )
+ if ( s.length() > 0) sscanf_s(s.c_str(), "%d", &x);
+#else
if ( s.length() > 0) sscanf(s.c_str(), "%d", &x);
+#endif
return x;
}
void* mmemalign(size_t align, size_t size, void*& mem)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:59:08
|
Revision: 229
http://hgengine.svn.sourceforge.net/hgengine/?rev=229&view=rev
Author: cnlohr
Date: 2009-05-12 04:59:03 +0000 (Tue, 12 May 2009)
Log Message:
-----------
warnings galore: fixed.
Modified Paths:
--------------
Mercury2/src/MercuryString.cpp
Modified: Mercury2/src/MercuryString.cpp
===================================================================
--- Mercury2/src/MercuryString.cpp 2009-05-12 04:58:42 UTC (rev 228)
+++ Mercury2/src/MercuryString.cpp 2009-05-12 04:59:03 UTC (rev 229)
@@ -44,7 +44,7 @@
MString::MString( const char * sIn )
{
- m_iLen = strlen( sIn );
+ m_iLen = (unsigned long)strlen( sIn );
m_iAlloc = m_iLen + 1;
m_sCur = (char*)malloc( m_iAlloc );
memcpy( m_sCur, sIn, m_iAlloc );
@@ -92,7 +92,7 @@
if (rhs != m_sCur)
{
free (m_sCur);
- m_iLen = strlen( rhs );
+ m_iLen = (unsigned long)strlen( rhs );
m_iAlloc = m_iLen + 1;
m_sCur = (char*)malloc( m_iAlloc );
memcpy( m_sCur, rhs, m_iAlloc );
@@ -115,7 +115,7 @@
{
if ( !rhs )
return (*this);
- int iRhsLen = strlen( rhs );
+ int iRhsLen = (int)strlen( rhs );
int iNextMalloc = NEXT_ALLOC( m_iLen, iRhsLen );
MString ret( iNextMalloc );
ret.m_iLen = m_iLen + iRhsLen;
@@ -138,7 +138,7 @@
const MString & MString::operator += ( const char * rhs )
{
- int iRhsLen = strlen( rhs );
+ int iRhsLen = (int)strlen( rhs );
MANAGE_ALLOC( iRhsLen )
memcpy( m_sCur + m_iLen, rhs, iRhsLen );
m_iLen += iRhsLen;
@@ -202,7 +202,7 @@
void MString::append( const char * app )
{
- int iRhsLen = strlen( app );
+ int iRhsLen = (int)strlen( app );
MANAGE_ALLOC( iRhsLen )
memcpy( m_sCur + m_iLen, app, iRhsLen );
m_iLen += iRhsLen;
@@ -238,7 +238,7 @@
void MString::assign( const char * app )
{
free( m_sCur );
- m_iLen = strlen( app );
+ m_iLen = (unsigned long)strlen( app );
m_iAlloc = m_iLen + 1;
m_sCur = (char*)malloc( m_iAlloc );
memcpy( m_sCur, app, m_iAlloc );
@@ -282,7 +282,7 @@
int MString::rfind( const char * tofind ) const
{
- int iLen = strlen( tofind );
+ int iLen = (int)strlen( tofind );
int iTarg = m_iLen - iLen;
while ( iTarg >= 0 )
@@ -400,7 +400,11 @@
va_start(va, fmt);
char * base = (char*)malloc( CurMal + 1 );
#if defined(WIN32)
- int len = _vsnprintf( base, CurMal, fmt, va );
+ #if defined( LEAN_HG )
+ int len = _vsnprintf( base, CurMal, fmt, va );
+ #else
+ int len = _vsnprintf_s( base, CurMal, CurMal, fmt, va );
+ #endif
#else
int len = vsnprintf( base, CurMal, fmt, va );
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:57:55
|
Revision: 227
http://hgengine.svn.sourceforge.net/hgengine/?rev=227&view=rev
Author: cnlohr
Date: 2009-05-12 04:57:54 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Tell Mercury to link zlib only if the zipped file driver is being used (remove dependency on project).
Modified Paths:
--------------
Mercury2/src/MercuryFileDriverZipped.cpp
Modified: Mercury2/src/MercuryFileDriverZipped.cpp
===================================================================
--- Mercury2/src/MercuryFileDriverZipped.cpp 2009-05-12 04:57:19 UTC (rev 226)
+++ Mercury2/src/MercuryFileDriverZipped.cpp 2009-05-12 04:57:54 UTC (rev 227)
@@ -5,6 +5,12 @@
#include <zlib.h>
#include <string.h>
+#if defined(WIN32)
+# if defined(_MSC_VER)
+# pragma comment(lib, "zdll.lib")
+# endif
+#endif
+
const MString PackagePrefix = "Packages/";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:57:20
|
Revision: 226
http://hgengine.svn.sourceforge.net/hgengine/?rev=226&view=rev
Author: cnlohr
Date: 2009-05-12 04:57:19 +0000 (Tue, 12 May 2009)
Log Message:
-----------
When we find out we can't set up the path the way we want, bail trying to set it, and assume we're already in the right place.
Modified Paths:
--------------
Mercury2/src/MercuryFileDriverDirect.cpp
Modified: Mercury2/src/MercuryFileDriverDirect.cpp
===================================================================
--- Mercury2/src/MercuryFileDriverDirect.cpp 2009-05-12 04:56:51 UTC (rev 225)
+++ Mercury2/src/MercuryFileDriverDirect.cpp 2009-05-12 04:57:19 UTC (rev 226)
@@ -213,6 +213,7 @@
if( !path_end )
{
fprintf( stderr, "WARNING: Could not change path of program to path of executable! Path retreived: \"%s\".\n", buffer );
+ return;
}
*path_end = 0;
if( !SetCurrentDirectory( (LPCWSTR)buffer ) )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:56:53
|
Revision: 225
http://hgengine.svn.sourceforge.net/hgengine/?rev=225&view=rev
Author: cnlohr
Date: 2009-05-12 04:56:51 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Load OGL Extensions at boot.
Modified Paths:
--------------
Mercury2/src/Mercury2.cpp
Modified: Mercury2/src/Mercury2.cpp
===================================================================
--- Mercury2/src/Mercury2.cpp 2009-05-12 04:55:43 UTC (rev 224)
+++ Mercury2/src/Mercury2.cpp 2009-05-12 04:56:51 UTC (rev 225)
@@ -15,6 +15,7 @@
#include <MercuryTimer.h>
#include <RenderGraph.h>
#include <Texture.h>
+#include <GLHeaders.h>
bool SHOWBOUNDINGVOLUME = false;
@@ -42,10 +43,15 @@
int main()
{
unsigned long m_count = 0;
-
+
cnset_execute_on_crash( SignalHandler );
MercuryWindow* w = MercuryWindow::MakeWindow();
+
+#ifdef WIN32
+ SetupOGLExtensions();
+#endif
+
MercuryNode* root = new MercuryNode();
XMLDocument* doc = XMLDocument::Load("scenegraph.xml");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:55:44
|
Revision: 224
http://hgengine.svn.sourceforge.net/hgengine/?rev=224&view=rev
Author: cnlohr
Date: 2009-05-12 04:55:43 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Freeglut and GL Extensions in Windows. GLUT on other OSes.
Modified Paths:
--------------
Mercury2/src/GLHeaders.h
Modified: Mercury2/src/GLHeaders.h
===================================================================
--- Mercury2/src/GLHeaders.h 2009-05-12 04:55:05 UTC (rev 223)
+++ Mercury2/src/GLHeaders.h 2009-05-12 04:55:43 UTC (rev 224)
@@ -9,10 +9,12 @@
#ifdef WIN32
#include <glext.h>
+#include <freeglut/glut.h>
+#include <OGLExtensions.h>
#else
+#define GL_GLEXT_PROTOTYPES
#include <GL/glext.h>
+#include <glut.h>
#endif
-#include <glut.h>
-
#endif
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:55:11
|
Revision: 223
http://hgengine.svn.sourceforge.net/hgengine/?rev=223&view=rev
Author: cnlohr
Date: 2009-05-12 04:55:05 +0000 (Tue, 12 May 2009)
Log Message:
-----------
Update Windows project, making the Debug/release builds uniform.
Modified Paths:
--------------
Mercury2/Mercury2.vcproj
Modified: Mercury2/Mercury2.vcproj
===================================================================
--- Mercury2/Mercury2.vcproj 2009-05-12 04:54:43 UTC (rev 222)
+++ Mercury2/Mercury2.vcproj 2009-05-12 04:55:05 UTC (rev 223)
@@ -41,8 +41,8 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="src/;src/include;src/include/zlib;src/include/png;src/include/libxml2;src/include/freeglut"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HGENGINE"
+ AdditionalIncludeDirectories=".;src;src/include;src/include/png;src/include/zlib"
+ PreprocessorDefinitions="HGENGINE,WIN32"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -117,8 +117,8 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="src/"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ AdditionalIncludeDirectories=".;src;src/include;src/include/png;src/include/zlib"
+ PreprocessorDefinitions="HGENGINE,WIN32"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
@@ -210,6 +210,14 @@
>
</File>
<File
+ RelativePath=".\src\MercuryBacktrace.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\MercuryCrash.c"
+ >
+ </File>
+ <File
RelativePath=".\src\MercuryFile.cpp"
>
</File>
@@ -286,6 +294,10 @@
>
</File>
<File
+ RelativePath=".\src\OGLExtensions.cpp"
+ >
+ </File>
+ <File
RelativePath=".\src\PNGLoader.cpp"
>
</File>
@@ -492,6 +504,10 @@
>
</File>
<File
+ RelativePath=".\src\OGLExtensions.h"
+ >
+ </File>
+ <File
RelativePath=".\src\PriorityQueue.h"
>
</File>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:54:44
|
Revision: 222
http://hgengine.svn.sourceforge.net/hgengine/?rev=222&view=rev
Author: cnlohr
Date: 2009-05-12 04:54:43 +0000 (Tue, 12 May 2009)
Log Message:
-----------
new libpng wants libpng12.dll to be the name of the DLL? Weird.
Added Paths:
-----------
Mercury2/libpng12.dll
Added: Mercury2/libpng12.dll
===================================================================
(Binary files differ)
Property changes on: Mercury2/libpng12.dll
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cn...@us...> - 2009-05-12 04:54:14
|
Revision: 221
http://hgengine.svn.sourceforge.net/hgengine/?rev=221&view=rev
Author: cnlohr
Date: 2009-05-12 04:54:10 +0000 (Tue, 12 May 2009)
Log Message:
-----------
need Zlib for HG2
Added Paths:
-----------
Mercury2/zlib1.dll
Added: Mercury2/zlib1.dll
===================================================================
(Binary files differ)
Property changes on: Mercury2/zlib1.dll
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|