Added more conditional debug output, taken from the dw_info test app.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23730 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2008-01-25 11:54:35 +00:00
parent f095b4556b
commit 28fa064595
+67 -4
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2003-2007, Haiku Inc.
* Copyright 2003-2008, Haiku Inc.
* Authors:
* Stefano Ceccherini <[email protected]>
* Carwyn Jones <[email protected]>
@@ -15,7 +15,7 @@
#include <DirectWindowPrivate.h>
#include <ServerProtocol.h>
//#define DEBUG 1
//#define DEBUG 3
#if DEBUG
#include <string.h>
@@ -75,15 +75,78 @@ print_direct_driver_state(const direct_driver_state &state)
}
static void
print_direct_buffer_layout(const buffer_layout &layout)
{
char string[64];
if (layout == B_BUFFER_NONINTERLEAVED)
strcpy(string, "B_BUFFER_NONINTERLEAVED");
else
strcpy(string, "unknown");
printf("layout: %s\n", string);
}
static void
print_direct_buffer_orientation(const buffer_orientation &orientation)
{
char string[64];
switch (orientation) {
case B_BUFFER_TOP_TO_BOTTOM:
strcpy(string, "B_BUFFER_TOP_TO_BOTTOM");
break;
case B_BUFFER_BOTTOM_TO_TOP:
strcpy(string, "B_BUFFER_BOTTOM_TO_TOP");
break;
default:
strcpy(string, "unknown");
break;
}
printf("orientation: %s\n", string);
}
static void
print_direct_buffer_info(const direct_buffer_info &info)
{
print_direct_buffer_state(info.buffer_state);
print_direct_driver_state(info.driver_state);
#if DEBUG > 1
printf("bits: %p\n", info.bits);
printf("pci_bits: %p\n", info.pci_bits);
printf("bytes_per_row: %ld\n", info.bytes_per_row);
printf("bits_per_pixel: %lu\n", info.bits_per_pixel);
printf("pixel_format: %d\n", info.pixel_format);
print_direct_buffer_layout(info.layout);
print_direct_buffer_orientation(info.orientation);
#if DEBUG > 2
printf("CLIPPING INFO:\n");
printf("clipping_rects count: %ld\n", info.clip_list_count);
printf("- window_bounds:\n");
BRegion region;
region.Set(info.window_bounds);
region.PrintToStream();
region.MakeEmpty();
for (uint32 i = 0; i < info.clip_list_count; i++)
region.Include(info.clip_list[i]);
printf("- clip_list:\n");
region.PrintToStream();
#endif
#endif
printf("\n\n");
}
#endif
BDirectWindow::BDirectWindow(BRect frame, const char *title, window_type type,
uint32 flags, uint32 workspace)
: BWindow(frame, title, type, flags, workspace)
@@ -494,7 +557,7 @@ BDirectWindow::_InitData()
fDirectLockCount = 0;
fDirectLockOwner = -1;
fDirectLockStack = NULL;
fDirectSem = create_sem(1, "direct sem");
fDirectSem = create_sem(0, "direct sem");
if (fDirectSem > 0)
fInitStatus |= DW_STATUS_SEM_CREATED;
#endif
@@ -503,7 +566,7 @@ BDirectWindow::_InitData()
fDisableSem = syncData.disable_sem;
fDisableSemAck = syncData.disable_sem_ack;
fClonedClippingArea = clone_area("Clone direct area", (void**)&fBufferDesc,
fClonedClippingArea = clone_area("cloned direct area", (void**)&fBufferDesc,
B_ANY_ADDRESS, B_READ_AREA, fSourceClippingArea);
if (fClonedClippingArea > 0) {