@@ -49,6 +49,8 @@ C_SOURCES = \ | |||
indices/u_indices_gen.c \ | |||
indices/u_unfilled_gen.c \ | |||
os/os_misc.c \ | |||
os/os_stream_stdc.c \ | |||
os/os_stream_wd.c \ | |||
os/os_time.c \ | |||
pipebuffer/pb_buffer_malloc.c \ | |||
pipebuffer/pb_bufmgr_alt.c \ | |||
@@ -115,8 +117,6 @@ C_SOURCES = \ | |||
util/u_ringbuffer.c \ | |||
util/u_simple_shaders.c \ | |||
util/u_snprintf.c \ | |||
util/u_stream_stdc.c \ | |||
util/u_stream_wd.c \ | |||
util/u_surface.c \ | |||
util/u_texture.c \ | |||
util/u_tile.c \ |
@@ -83,6 +83,8 @@ source = [ | |||
'indices/u_indices_gen.c', | |||
'indices/u_unfilled_gen.c', | |||
'os/os_misc.c', | |||
'os/os_stream_stdc.c', | |||
'os/os_stream_wd.c', | |||
'os/os_time.c', | |||
'pipebuffer/pb_buffer_fenced.c', | |||
'pipebuffer/pb_buffer_malloc.c', | |||
@@ -151,8 +153,6 @@ source = [ | |||
'util/u_ringbuffer.c', | |||
'util/u_simple_shaders.c', | |||
'util/u_snprintf.c', | |||
'util/u_stream_stdc.c', | |||
'util/u_stream_wd.c', | |||
'util/u_surface.c', | |||
'util/u_texture.c', | |||
'util/u_tile.c', |
@@ -1,6 +1,6 @@ | |||
/************************************************************************** | |||
* | |||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. | |||
* Copyright 2008-2010 VMware, Inc. | |||
* All Rights Reserved. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
@@ -18,7 +18,7 @@ | |||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | |||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | |||
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR | |||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
@@ -30,14 +30,14 @@ | |||
* Cross-platform sequential access stream abstraction. | |||
*/ | |||
#ifndef U_STREAM_H | |||
#define U_STREAM_H | |||
#ifndef _OS_STREAM_H_ | |||
#define _OS_STREAM_H_ | |||
#include "pipe/p_compiler.h" | |||
struct util_stream; | |||
struct os_stream; | |||
/** | |||
@@ -45,17 +45,17 @@ struct util_stream; | |||
* @param filename relative or absolute path (necessary for windows) | |||
* @param optional maximum file size (0 for a growable size). | |||
*/ | |||
struct util_stream * | |||
util_stream_create(const char *filename, size_t max_size); | |||
struct os_stream * | |||
os_stream_create(const char *filename, size_t max_size); | |||
boolean | |||
util_stream_write(struct util_stream *stream, const void *data, size_t size); | |||
os_stream_write(struct os_stream *stream, const void *data, size_t size); | |||
void | |||
util_stream_flush(struct util_stream *stream); | |||
os_stream_flush(struct os_stream *stream); | |||
void | |||
util_stream_close(struct util_stream *stream); | |||
os_stream_close(struct os_stream *stream); | |||
#endif /* U_STREAM_H */ | |||
#endif /* _OS_STREAM_H_ */ |
@@ -1,6 +1,6 @@ | |||
/************************************************************************** | |||
* | |||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. | |||
* Copyright 2008-2010 VMware, Inc. | |||
* All Rights Reserved. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
@@ -18,7 +18,7 @@ | |||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | |||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | |||
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR | |||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
@@ -32,47 +32,46 @@ | |||
#include "pipe/p_config.h" | |||
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_SUBSYSTEM_WINDOWS_USER) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_APPLE) | |||
#if defined(PIPE_OS_UNIX) || defined(PIPE_SUBSYSTEM_WINDOWS_USER) | |||
#include <stdlib.h> | |||
#include <stdio.h> | |||
#include "util/u_memory.h" | |||
#include "os_stream.h" | |||
#include "u_stream.h" | |||
struct util_stream | |||
struct os_stream | |||
{ | |||
FILE *file; | |||
}; | |||
struct util_stream * | |||
util_stream_create(const char *filename, size_t max_size) | |||
struct os_stream * | |||
os_stream_create(const char *filename, size_t max_size) | |||
{ | |||
struct util_stream *stream; | |||
struct os_stream *stream; | |||
(void)max_size; | |||
stream = CALLOC_STRUCT(util_stream); | |||
stream = (struct os_stream *)calloc(1, sizeof(struct os_stream)); | |||
if(!stream) | |||
goto error1; | |||
goto no_stream; | |||
stream->file = fopen(filename, "w"); | |||
if(!stream->file) | |||
goto error2; | |||
goto no_file; | |||
return stream; | |||
error2: | |||
FREE(stream); | |||
error1: | |||
no_file: | |||
free(stream); | |||
no_stream: | |||
return NULL; | |||
} | |||
boolean | |||
util_stream_write(struct util_stream *stream, const void *data, size_t size) | |||
os_stream_write(struct os_stream *stream, const void *data, size_t size) | |||
{ | |||
if(!stream) | |||
return FALSE; | |||
@@ -82,7 +81,7 @@ util_stream_write(struct util_stream *stream, const void *data, size_t size) | |||
void | |||
util_stream_flush(struct util_stream *stream) | |||
os_stream_flush(struct os_stream *stream) | |||
{ | |||
if(!stream) | |||
return; | |||
@@ -92,14 +91,14 @@ util_stream_flush(struct util_stream *stream) | |||
void | |||
util_stream_close(struct util_stream *stream) | |||
os_stream_close(struct os_stream *stream) | |||
{ | |||
if(!stream) | |||
return; | |||
fclose(stream->file); | |||
FREE(stream); | |||
free(stream); | |||
} | |||
@@ -1,6 +1,6 @@ | |||
/************************************************************************** | |||
* | |||
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. | |||
* Copyright 2008-2010 VMware, Inc. | |||
* All Rights Reserved. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
@@ -18,7 +18,7 @@ | |||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | |||
* IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | |||
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR | |||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
@@ -37,16 +37,14 @@ | |||
#include <windows.h> | |||
#include <winddi.h> | |||
#include "util/u_memory.h" | |||
#include "util/u_string.h" | |||
#include "u_stream.h" | |||
#include "os_memory.h" | |||
#include "os_stream.h" | |||
#define MAP_FILE_SIZE (4*1024*1024) | |||
struct util_stream | |||
struct os_stream | |||
{ | |||
char filename[MAX_PATH + 1]; | |||
WCHAR wFileName[MAX_PATH + 1]; | |||
@@ -60,23 +58,23 @@ struct util_stream | |||
static INLINE boolean | |||
util_stream_map(struct util_stream *stream) | |||
os_stream_map(struct os_stream *stream) | |||
{ | |||
ULONG BytesInUnicodeString; | |||
static char filename[MAX_PATH + 1]; | |||
unsigned filename_len; | |||
if(stream->growable) | |||
filename_len = util_snprintf(filename, | |||
sizeof(filename), | |||
"%s.%04x", | |||
stream->filename, | |||
stream->suffix++); | |||
filename_len = snprintf(filename, | |||
sizeof(filename), | |||
"%s.%04x", | |||
stream->filename, | |||
stream->suffix++); | |||
else | |||
filename_len = util_snprintf(filename, | |||
sizeof(filename), | |||
"%s", | |||
stream->filename); | |||
filename_len = snprintf(filename, | |||
sizeof(filename), | |||
"%s", | |||
stream->filename); | |||
EngMultiByteToUnicodeN( | |||
stream->wFileName, | |||
@@ -97,7 +95,7 @@ util_stream_map(struct util_stream *stream) | |||
static INLINE void | |||
util_stream_unmap(struct util_stream *stream) | |||
os_stream_unmap(struct os_stream *stream) | |||
{ | |||
EngUnmapFile(stream->iFile); | |||
if(stream->written < stream->map_size) { | |||
@@ -112,7 +110,7 @@ util_stream_unmap(struct util_stream *stream) | |||
static INLINE void | |||
util_stream_full_qualified_filename(char *dst, size_t size, const char *src) | |||
os_stream_full_qualified_filename(char *dst, size_t size, const char *src) | |||
{ | |||
boolean need_drive, need_root; | |||
@@ -125,24 +123,24 @@ util_stream_full_qualified_filename(char *dst, size_t size, const char *src) | |||
need_root = src[0] == '\\' ? FALSE : TRUE; | |||
} | |||
util_snprintf(dst, size, | |||
"\\??\\%s%s%s", | |||
need_drive ? "C:" : "", | |||
need_root ? "\\" : "", | |||
src); | |||
snprintf(dst, size, | |||
"\\??\\%s%s%s", | |||
need_drive ? "C:" : "", | |||
need_root ? "\\" : "", | |||
src); | |||
} | |||
struct util_stream * | |||
util_stream_create(const char *filename, size_t max_size) | |||
struct os_stream * | |||
os_stream_create(const char *filename, size_t max_size) | |||
{ | |||
struct util_stream *stream; | |||
struct os_stream *stream; | |||
stream = CALLOC_STRUCT(util_stream); | |||
stream = CALLOC_STRUCT(os_stream); | |||
if(!stream) | |||
goto error1; | |||
util_stream_full_qualified_filename(stream->filename, | |||
os_stream_full_qualified_filename(stream->filename, | |||
sizeof(stream->filename), | |||
filename); | |||
@@ -155,7 +153,7 @@ util_stream_create(const char *filename, size_t max_size) | |||
stream->map_size = MAP_FILE_SIZE; | |||
} | |||
if(!util_stream_map(stream)) | |||
if(!os_stream_map(stream)) | |||
goto error2; | |||
return stream; | |||
@@ -168,7 +166,7 @@ error1: | |||
static INLINE void | |||
util_stream_copy(struct util_stream *stream, const char *data, size_t size) | |||
os_stream_copy(struct os_stream *stream, const char *data, size_t size) | |||
{ | |||
assert(stream->written + size <= stream->map_size); | |||
memcpy(stream->pMap + stream->written, data, size); | |||
@@ -177,7 +175,7 @@ util_stream_copy(struct util_stream *stream, const char *data, size_t size) | |||
boolean | |||
util_stream_write(struct util_stream *stream, const void *data, size_t size) | |||
os_stream_write(struct os_stream *stream, const void *data, size_t size) | |||
{ | |||
if(!stream) | |||
return FALSE; | |||
@@ -187,35 +185,35 @@ util_stream_write(struct util_stream *stream, const void *data, size_t size) | |||
while(stream->written + size > stream->map_size) { | |||
size_t step = stream->map_size - stream->written; | |||
util_stream_copy(stream, data, step); | |||
os_stream_copy(stream, data, step); | |||
data = (const char *)data + step; | |||
size -= step; | |||
util_stream_unmap(stream); | |||
if(!stream->growable || !util_stream_map(stream)) | |||
os_stream_unmap(stream); | |||
if(!stream->growable || !os_stream_map(stream)) | |||
return FALSE; | |||
} | |||
util_stream_copy(stream, data, size); | |||
os_stream_copy(stream, data, size); | |||
return TRUE; | |||
} | |||
void | |||
util_stream_flush(struct util_stream *stream) | |||
os_stream_flush(struct os_stream *stream) | |||
{ | |||
(void)stream; | |||
} | |||
void | |||
util_stream_close(struct util_stream *stream) | |||
os_stream_close(struct os_stream *stream) | |||
{ | |||
if(!stream) | |||
return; | |||
util_stream_unmap(stream); | |||
os_stream_unmap(stream); | |||
FREE(stream); | |||
} |
@@ -30,6 +30,7 @@ | |||
#include "pipe/p_config.h" | |||
#include "pipe/p_compiler.h" | |||
#include "os/os_stream.h" | |||
#include "util/u_debug.h" | |||
#include "pipe/p_format.h" | |||
#include "pipe/p_state.h" | |||
@@ -37,7 +38,6 @@ | |||
#include "util/u_format.h" | |||
#include "util/u_memory.h" | |||
#include "util/u_string.h" | |||
#include "util/u_stream.h" | |||
#include "util/u_math.h" | |||
#include "util/u_tile.h" | |||
#include "util/u_prim.h" | |||
@@ -606,7 +606,7 @@ debug_dump_float_rgba_bmp(const char *filename, | |||
float *rgba, unsigned stride) | |||
{ | |||
#ifndef PIPE_SUBSYSTEM_WINDOWS_MINIPORT | |||
struct util_stream *stream; | |||
struct os_stream *stream; | |||
struct bmp_file_header bmfh; | |||
struct bmp_info_header bmih; | |||
unsigned x, y; | |||
@@ -632,12 +632,12 @@ debug_dump_float_rgba_bmp(const char *filename, | |||
bmih.biClrUsed = 0; | |||
bmih.biClrImportant = 0; | |||
stream = util_stream_create(filename, bmfh.bfSize); | |||
stream = os_stream_create(filename, bmfh.bfSize); | |||
if(!stream) | |||
goto error1; | |||
util_stream_write(stream, &bmfh, 14); | |||
util_stream_write(stream, &bmih, 40); | |||
os_stream_write(stream, &bmfh, 14); | |||
os_stream_write(stream, &bmih, 40); | |||
y = height; | |||
while(y--) { | |||
@@ -649,11 +649,11 @@ debug_dump_float_rgba_bmp(const char *filename, | |||
pixel.rgbGreen = float_to_ubyte(ptr[x*4 + 1]); | |||
pixel.rgbBlue = float_to_ubyte(ptr[x*4 + 2]); | |||
pixel.rgbAlpha = 255; | |||
util_stream_write(stream, &pixel, 4); | |||
os_stream_write(stream, &pixel, 4); | |||
} | |||
} | |||
util_stream_close(stream); | |||
os_stream_close(stream); | |||
error1: | |||
; | |||
#endif |