Untitled
unknown
plain_text
a year ago
2.0 kB
18
Indexable
light@light:~$ cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <freerdp2/freerdp/server/rdpgfx.h>
#include <wlr/render/allocator.h>
#include <wlr/util/log.h>
#include "render/allocator/rdprail.h"
// Mock FreeRDP callbacks for testing
static UINT test_open_pool(GfxRedirServerContext* context, const GFXREDIR_OPEN_POOL_PDU* openPool) {
printf("Opening pool with ID: %d\n", openPool->poolId);
return 0;
}
static UINT test_create_buffer(GfxRedirServerContext* context, const GFXREDIR_CREATE_BUFFER_PDU* createBuffer) {
printf("Creating buffer: ID %d in pool %d, size %dx%d\n",
createBuffer->bufferId, createBuffer->poolId,
createBuffer->width, createBuffer->height);
return 0;
}
int main() {
// Initialize logging
wlr_log_init(WLR_DEBUG, NULL);
// Create mock FreeRDP context
GfxRedirServerContext *redir_ctx = calloc(1, sizeof(GfxRedirServerContext));
redir_ctx->OpenPool = test_open_pool;
redir_ctx->CreateBuffer = test_create_buffer;
// Create our allocator
struct wlr_allocator *alloc = wlr_rdprail_allocator_create(redir_ctx);
if (!alloc) {
fprintf(stderr, "Failed to create allocator\n");
return 1;
}
// Test buffer creation
struct wlr_buffer_format_set formats = {0}; // You'll need to set up proper formats
struct wlr_buffer *buffer = wlr_allocator_create_buffer(alloc,
640, 480, &formats);
if (!buffer) {
fprintf(stderr, "Failed to create buffer\n");
return 1;
}
// Try writing to buffer
uint32_t *pixels = buffer->data;
for (int i = 0; i < (640 * 480); i++) {
pixels[i] = 0xFF0000FF; // Fill with red
}
printf("Buffer created and filled with red\n");
printf("Memory address: %p\n", buffer->data);
// Cleanup
wlr_buffer_drop(buffer);
wlr_allocator_destroy(alloc);
free(redir_ctx);
return 0;
}
light@light:~$Editor is loading...
Leave a Comment